2015-03-16 2 views
1

Я пытаюсь создать сценарий sh, используя сценарий ожидания для встроенной системы (я не хочу менять прошивку, чтобы включить этот скрипт). Итак, у меня есть следующий сценарий, который не работает из-за неправильное использование val в if -блоке:Как создать sh-скрипт с ожиданием?

#!/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-скрипта?

ответ

2

Проблема сценария в interpretation by Tcl из [ и ] - эти скобки должны быть экранированы:

send "if \[ \$val -eq 0 \]; then echo Good; fi\n" 
# its here ^^^^^ 
Смежные вопросы