【问题标题】:How to append a variable in SCP command in shell script?如何在 shell 脚本的 SCP 命令中附加变量?
【发布时间】:2014-01-04 18:40:07
【问题描述】:

下面是我的 shell 脚本,我试图在 if 语句块中的 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 的方式有什么问题吗

【问题讨论】:

    标签: linux bash shell unix scp


    【解决方案1】:

    试试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 替换为其值, 你没有定义$element_5,所以你得到了

    t1_.data 没有这样的文件或目录

    【讨论】:

      猜你喜欢
      • 2018-06-07
      • 1970-01-01
      • 2011-08-02
      • 2015-04-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多