期望从文件脚本读取命令(Expect script reading commands from fi

2019-10-21 12:25发布

我试图写一个expect脚本,从文件中读取命令并执行它们,在解释这个话题 。 这里被称为我的脚本script.sh

#!/usr/bin/expect

set f [open "script_cmds.txt"]
set cmds [split [read $f] "\n"]
close $f

foreach cmd $cmds {
    spawn cmd 
}

expect eof
close

和文件script_cmds.txt ,位于同一个文件夹,如下所示:

mkdir cmdlisttest1
mkdir cmdlisttest2

要编译并在Cygwin上我使用运行该脚本

chmod +x script.sh
d2u script.sh
./script.sh

我得到的输出读取

spawn cmd
spawn cmd
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\cygwin\home\user>

然后将它停在那里,但不退出。 该文件夹cmdlisttest1cmdlisttest2不创建。

我是相当新的期待脚本; 任何人都可以看出错误(县)?

Answer 1:

你执行spawn cmd而不是spawn $cmd
随着$cmd你正在阅读存储在变量值cmd ,这就是你想要的。



文章来源: Expect script reading commands from file