我尝试使用嵌入式系统的expect脚本创建一个sh脚本(我不想更改固件以包含此脚本)。所以,我有以下脚本,由于val
中if
的错误使用而无法正常工作 - 阻止:
#!/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脚本中使用变量?
答案 0 :(得分:2)
脚本的问题位于[
和]
的{{3}} - 这些括号应该被转义:
send "if \[ \$val -eq 0 \]; then echo Good; fi\n"
# its here ^^^^^