如何用expect创建sh脚本?

时间:2015-03-16 17:28:06

标签: embedded sh embedded-linux expect

我尝试使用嵌入式系统的expect脚本创建一个sh脚本(我不想更改固件以包含此脚本)。所以,我有以下脚本,由于valif的错误使用而无法正常工作 - 阻止:

#!/usr/bin/env expect

set timeout 20
set ipaddr [lindex $argv 0]
spawn telnet $ipaddr
expect "soc1 login: "
send "root\n"
expect "prompt # "
send "val=`some_command`\n"
expect "prompt # "
send "if [ \$val -eq 0 ]; then echo Good; fi\n"
# its here ^^^^^
expect "prompt # "
send "exit\n"
interact

我已尝试使用$$并且它没有帮助。 如何修复此脚本以允许在sh脚本中使用变量?

1 个答案:

答案 0 :(得分:2)

脚本的问题位于[]的{​​{3}} - 这些括号应该被转义:

send "if \[ \$val -eq 0 \]; then echo Good; fi\n"
# its here ^^^^^