#!/usr/bin/ ожидаем, что не работает

Это, вероятно, простой вопрос, однако есть простой ожидаемый скрипт, к которому я добавляю исполняемый бит, который, кажется, игнорирует строку интерпретатора #!/ Usr/bin/ wait. Более того, кажется, что переменные не устанавливаются, поскольку, когда я их отображаю, они пустые...

#!/usr/bin/expect -f
set device "1.1.1.1"
set user   "testuser"

spawn ssh $user@$device
echo $device
echo $user

ls -lh
-rwxr-xr-x  root  root    testexpect.exp

Спасибо за помощь сообщества!!

PS Я использую Debian Wheezy, установил ожидаемо через apt-get install ожидаем... спасибо

2 ответа

Expect основан на языке Tcl, поэтому вы не должны использовать bash 'echo' - вы должны использовать 'put', чтобы напечатать что-то на экране:

#!/usr/bin/expect -f
set device "1.1.1.1"
set user   "testuser"
spawn ssh $user@$device
puts $device
puts $user

И вы получите такой результат:

$ ./test.exp
spawn ssh testuser@1.1.1.1
1.1.1.1
testuser

Сообщения об ошибках указывают на то, что вы запускаете команду с явным интерпретатором, например:

bash ./testexpect.exp

Это будет игнорировать "#!" линия. Что бы ни запускал скрипт, нужно просто назвать файл (или явно сказать expect ./testexpect.exp). Если твой #! линия была плохой, ты бы получил /usr/bin/expect: bad interpreter: ...

Другие вопросы по тегам