Одиночные кавычки не имеют особого значения в ожидании. Используйте двойные кавычки.
Кроме того, используйте expect eof
вместо interact
, поскольку после ввода пароля взаимодействовать не с чем - вы просто ждете завершения команды.
Это код (скрипт 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"
Что может быть не так с этим?
Одиночные кавычки не имеют особого значения в ожидании. Используйте двойные кавычки.
Кроме того, используйте expect eof
вместо interact
, поскольку после ввода пароля взаимодействовать не с чем - вы просто ждете завершения команды.