linux - 如何在 shell 脚本中的 SCP 命令中附加变量?

标签 linux bash shell unix scp

下面是我的 shell 脚本,我试图在下面的 if 语句 block 中的 scp 调用中附加 $element。

for element in ${x[$key]}; do   # no quotes here
    printf "%s\t%s\n" "$key" "$element"
    if [ $key -eq 0 ]
    then
        scp david@machineB:/data/be_t1_snapshot/20131215/t1_$element_5.data /data01/primary/.
    fi    
done

但是每当我运行上面的 shell 脚本时,我总是这样 -

scp david@machineB:/data/be_t1_snapshot/20131215/t1_.data No such file or directory

当我仔细查看上面的错误信息时,上面的 scp 声明不正确 -

scp david@machineB:/data/be_t1_snapshot/20131215/t1_0_5.data /data01/primary/.

$element 的值应该替换为 0 但不知何故我上面的附加逻辑不起作用。我在上面的 scp 命令中附加 $element 的方式有什么问题吗

最佳答案

尝试 t1_${element}_5.data

scp david@machineB:/data/be_t1_snapshot/20131215/t1_${element}_5.data /data01/primary/.

当您使用 t1_$element_5.data 时, bash 将替换 $element_5以其值(value), 你没有 $element_5定义,所以你得到

t1_.data No such file or directory

关于linux - 如何在 shell 脚本中的 SCP 命令中附加变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20626745/

相关文章:

linux - 使用 sed 和 pstree 显示正在使用的终端类型

macos - Mac OSX - 允许用户通过 GUI 或提示符在 shell 脚本中输入

bash - 在 bash 中修剪尾部和前导斜杠 - 加入参数替换?

linux - 仅提取文件名的 Shell 脚本

linux - 循环目录、处理文件和重命名新文件

bash - 如何修复错误bash意外 token bash?

linux - 使 curl 命令 shell 脚本 centOS 超时

c - 套接字未收到消息 AF_UNIX

linux - 使用命令行/终端下载研究论文

python - 为什么这个来自 python 的 bash 调用不起作用?