我正在尝试编写一个expect脚本,该脚本从文件中读取命令并执行它们,如this topic中所述。这是我的脚本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>
然后在没有退出的情况下停在那里。未创建文件夹cmdlisttest1
和cmdlisttest2
。
我很期待脚本;谁能发现错误?
答案 0 :(得分:1)
您正在执行spawn cmd
而不是spawn $cmd
使用$cmd
,您正在读取存储在变量cmd
中的值,这就是您想要的。