Проблемы с использованием EXPECT - это скрипт оболочки BASH

6599
FernandoSBS

Это код (скрипт 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"

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

0

1 ответ на вопрос

4
glenn jackman

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

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

+1 `ожидай eof` был ключом к моей ситуации. FractalSpace 9 лет назад 1