【发布时间】:2017-07-08 23:03:06
【问题描述】:
for VM in $VM_LIST;do
ssh 10.0.0.163 "mkdir $ROOT$VM`date +%F`"
ssh 10.0.0.163 'find -name "$VM.vmx" | xargs grep -r vmdk >/vmkd.list | cat /vmkd.list | awk -F\" '{print $2}' | while read list; do find -name "$list" ;done'
done
我对这个表达式有疑问 - awk -F\" '{print $2}',它破坏了我的代码
awk: cmd. line:1: Unexpected end of string
我能用它做什么???
【问题讨论】:
-
使用:
'\'':引号+反斜杠+引号+引号替换每个单引号。 -
您向 SSH 发送一个用单引号括起来的字符串,其中包含您在成功连接到远程计算机后要运行的命令。在您的命令字符串中,您有单引号,有效地过早地结束了您的字符串。您必须使用 F. Hauri 在上一条评论中解释的方法“转义”它们,以便将它们视为字符串的一部分。
-
“我的这个表达式有问题......它破坏了我的代码” - 怎么办?什么是问题或错误?由于 Stack Overflow 向您隐藏了关闭原因:寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误以及在问题本身。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example。