Это код (скрипт bash):

echo "Pass for router:"
read -s pass


/usr/bin/expect <<EOD
spawn ssh 192.168.10.1 -l root 'opkg list-installed' > list-installed.txt
#echo @pass
expect "*password:*"
send "$pass\r"
interact
EOD

Проблема в том, что он ничего не возвращает. Он не создает локальный файл "list-instal.txt"

Что может быть не так с этим?

1 ответ1

4

Одиночные кавычки не имеют особого значения в ожидании. Используйте двойные кавычки.

Кроме того, используйте ожидаемую часть expect eof вместо interact , поскольку после ввода пароля взаимодействовать не с чем - вы просто ждете завершения команды.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .