远程SSH:没有这样的文件或目录

时间:2017-09-28 10:07:56

标签: linux unix ssh ksh

尝试运行此cmd:

ssh user@host " cp -f /path1/`cat /path2/file.txt | awk -F : '{printf $4}' `* ../ "

得到了这个:

  

cat:/path2/file.txt:没有这样的文件或目录

请注意,直接在服务器中执行它时可以正常工作

感谢您的任何建议

1 个答案:

答案 0 :(得分:3)

试试这个:

ssh user@host 'cp -f /path1/$(awk -F : '\''{printf $4}'\'' /path2/file.txt)* ..'

这可能也很有趣:Useless Use of Cat Award

或者这个:

ssh user@host 'cp -f '\'"$path1"\''/$(awk -F : '\''{printf $4}'\'' /path2/file.txt)* ..'

请记住:

  • 单引号不评估$。
  • 双引号会评估$。
  • 如果要将单引号放入单引号字符串中,则必须将字符串拆分为两部分,并在其间放置转义单引号。 'a'\''b'变为a'b
  • 如果需要在单个带引号的字符串中评估变量,则必须将字符串拆分为两部分,并将双引号变量置于其间。 'a'"$x"'b'变为a${x}b