Скрипт Expect не работает на Linux-машине

Вы можете использовать конструкцию foo="$(command)"для возврата вывода commandв переменную foo. Итак, для вашего пользования -чехол:

$ BWD="$(basename "$PWD")"
1
29.01.2021, 10:24
1 ответ

В TCL пара [ ] является вызовом для подстановки команд, подобно $()в оболочках POSIX.

Если у вас есть autoexpect, то самый простой способ написать сценарий ожидания — это использовать autoexpect, чтобы наблюдать за тем, как вы что-то делаете, а затем отредактировать получившийся сценарий, удалив ненужные элементы.

Вы можете изменить "..." на {...}, чтобы избежать оценки строки.

#!/usr/bin/expect -f
set VAR [lindex $argv 1]
spawn ssh root@$argv 
expect {Are you sure you want to continue connecting (yes/no/[fingerprint])? }
send "yes\r"

Обычно требуется что-то большее, чтобы приглашение было необязательным, например.

#!/usr/bin/expect -f
set VAR [lindex $argv 1]
spawn ssh root@$argv 
expect {
    {Are you sure you want to continue connecting (yes/no/[fingerprint])? } {
        exp_send "yes\r"
        exp_continue
    }
    {Password:} {send "secret\r"}
    {# }
}
5
18.03.2021, 22:33

Теги

Похожие вопросы