Назад | Перейти на главную страницу

ожидать сценарий + написать «если» в сценарии ожидания

пожалуйста, посоветуйте, что не так с моим синтаксисом exepct (я запускаю ожидание в сценарии ksh на машине Solaris 10)

Я хочу проверить, является ли ОС 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" }"

Expect, являясь расширением Tcl, должен уважать Tcl очень мало синтаксических правил. В Tcl новая строка означает конец команды (см. это правило), так что вы должен поместите открытую скобку if-body на той же строке.

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