使用带变量的sed发送

时间:2014-08-29 16:23:30

标签: bash sed

我正在尝试使用带有使用变量的sed的send命令。 无法正确逃脱。

send "sed "1i//$VAR" /file > /tmp/out\r"

如果我单独使用sed命令(将$ VAR文本添加为​​文件的第一行),它可以工作:

sed "1i//$VAR" /file > /tmp/out

但我无法弄清楚如何在send命令中逃脱。

2 个答案:

答案 0 :(得分:2)

在双引号内,单引号失去了它们的特殊含义,所以你可能需要:

send "sed '1i//$VAR' /file > /tmp/out\r"

在本地计算机上,$VAR被放入命令中。在远程计算机上,sed命令用单引号括起来,以防止进一步滥用。

答案 1 :(得分:2)

这应该有效:

send "sed '1i//$VAR' /file > /tmp/out\r"

只有最外层引号的类型才能确定是否插入变量。