Это - вероятно, легкий вопрос, однако имейте простое, ожидают сценарий, который я имею, добавляют, что исполняемый бит к этому, кажется, игнорирует #!/usr/bin/expect строка интерпретатора. Далее больше также кажется, что переменные не устанавливаются, с тех пор, когда я повторяю их, они - пробел...
#!/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
Спасибо за Ваше сообщество справки!!
P.S. Я работаю Debian Хрипящий, установленный ожидают через Кв. - добираются, установка ожидают... спасибо
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 интерпретатор: ...