期待从文件中读取脚本命令

时间:2014-12-27 14:24:56

标签: shell cygwin expect mkdir

我正在尝试编写一个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>

然后在没有退出的情况下停在那里。未创建文件夹cmdlisttest1cmdlisttest2

我很期待脚本;谁能发现错误?

1 个答案:

答案 0 :(得分:1)

您正在执行spawn cmd而不是spawn $cmd 使用$cmd,您正在读取存储在变量cmd中的值,这就是您想要的。