2014-08-29 50 views
0

我想使用發送命令與使用變量的sed。 無法正確逃脫。發送使用sed變量

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

如果我單獨使用sed命令(它增加了$ VAR文本文件的第一行),它的工作原理:

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

但我無法弄清楚如何內逃脫髮送命令。

+1

這是'expect'? – 2014-08-29 16:26:59

回答

2

在雙引號內,單引號失去了特殊的意義,所以你可能需要:

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

在本地機,$VAR放入命令。在遠程機器上,sed命令用單引號括起來,以防止進一步的濫用。

2

這應該工作:

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

只有最外層的引號事項的類型決定變量是否插。