下面是我的shell脚本,我试图在if语句块中的scp
调用中附加$元素。
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的方式有什么不对吗
答案 0 :(得分:4)
尝试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没有这样的文件或目录