如何使用tcl / expect运行unix命令

时间:2014-05-02 01:29:19

标签: tcl expect

我是tcl的新手。我正在尝试使用tcl脚本运行一些命令。

我在线搜索并了解我们可以使用exec

使用tcl运行unix命令

我执行了以下操作;

perl -i -p -e 's/hello linux./hello fedora. /g;' sample1.txt
从命令行

它起作用了。它用hello fedora取代了所有hello linux的出现。

我尝试在我的tcl脚本中执行相同的命令。

set result [exec perl -i -p -e 's/hello linux./hello fedora. /g;' sample.txt]

我收到以下错误:

child process exited abnormally

我也尝试使用sed命令。我得到了同样的错误。我猜语法有问题。我在网上搜索但我无法自己解决。

1 个答案:

答案 0 :(得分:2)

'不是tcl中的分组字符。 tcl中的等效分组是{}。因此,正确的陈述是:

exec perl -i -p -e {s/hello linux./hello fedora. /g;} sample.txt

甚至:

exec perl -i -p -e "s/hello linux./hello fedora. /g;" sample.txt