0
当试图运行这个CMD:远程SSH:没有这样的文件或目录
ssh [email protected] " cp -f /path1/`cat /path2/file.txt | awk -F : '{printf $4}' `* ../ "
得到这个:
猫:/path2/file.txt:没有这样的文件或目录
注意,当在服务器中直接执行它,它的工作原理
感谢您的任何意见
当试图运行这个CMD:远程SSH:没有这样的文件或目录
ssh [email protected] " cp -f /path1/`cat /path2/file.txt | awk -F : '{printf $4}' `* ../ "
得到这个:
猫:/path2/file.txt:没有这样的文件或目录
注意,当在服务器中直接执行它,它的工作原理
感谢您的任何意见
试试这个:
ssh [email protected] 'cp -f /path1/$(awk -F : '\''{printf $4}'\'' /path2/file.txt)* ..'
这可能是也很有趣:Useless Use of Cat Award。
或者这样:
ssh [email protected] 'cp -f '\'"$path1"\''/$(awk -F : '\''{printf $4}'\'' /path2/file.txt)* ..'
请记住:
'a'\''b'
变为a'b
'a'"$x"'b'
变成a${x}b
作为一个变量从本地服务器制作/ path1呢? – FuSsA
作为第一个指针:我猜你的本地shell会解释'cat ...'。这意味着反引号('')之间的所有内容都将被替换为计算机上该命令的输出(我认为即使在ssh进程启动之前)也是如此。 – Felix
请提供更多信息,以了解这些文件的外观应该如何 – Felix
为SSH参数使用单引号。并且根本不使用反标记。他们已被弃用。改用'$()'。 – ceving