#!/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: ...