我正在尝试使用带有使用变量的sed的send命令。 无法正确逃脱。
send "sed "1i//$VAR" /file > /tmp/out\r"
如果我单独使用sed命令(将$ VAR文本添加为文件的第一行),它可以工作:
sed "1i//$VAR" /file > /tmp/out
但我无法弄清楚如何在send命令中逃脱。
答案 0 :(得分:2)
在双引号内,单引号失去了它们的特殊含义,所以你可能需要:
send "sed '1i//$VAR' /file > /tmp/out\r"
在本地计算机上,$VAR
被放入命令中。在远程计算机上,sed
命令用单引号括起来,以防止进一步滥用。
答案 1 :(得分:2)
这应该有效:
send "sed '1i//$VAR' /file > /tmp/out\r"
只有最外层引号的类型才能确定是否插入变量。