期望脚本+在期望脚本中写入“if”

请咨询我的exepct语法有什么问题(我在Solaris 10机器上运行ksh脚本)

我想validation如果操作系统是Linux

所以如果真的如期检查提示是“#”还是“>”

然后运行“ls”命令

但我得到下面的错误,请咨询可能是什么问题

OS=solaris expect_do_something=`cat << EOF set timeout -1 spawn telnet 0 $IP_ADDRESS expect login: {send $LOGIN\r} expect Password: {send "$PASS\r"} if { "$OS" == "solaris" } { expect -re {#|>} {send ls\r} } expect eof EOF` expect -c "$expect_do_something" 

预期的错误:

  wrong # args: no script following " "solaris" == "solaris" " argument while executing "if { "solaris" == "solaris" }" 

预计,作为Tcl的延伸,必须尊重Tcl 很less的语法规则 。 在Tcl中,换行符表示命令的结束(参见此规则 ),因此必须将if-body的开放大括号放在同一行上。

 if { "$OS" == "solaris" } { # ......................^ expect -re {#|>} {send ls\r} }