У меня есть сценарий ожидания, который проверяет, существует ли файл на удаленном сервере, а затем пытается распечатать (используя cat) его, если он
По какой-то причине сценарий ожидания игнорирует эти команды.
send "if {[file exists "./abc.test"]} {cat ./abc.txt\r}"
Вот что я сделал, и теперь это сработало
cat /some/path/abc.txt 2> /dev/null
Таким образом, файл будет распечатан, если он существует, и не выдаст ошибку, если это не так.
Я никогда не использовал Expect, но ваш пример кода ...
if {[file exists "./abc.test"]} {send "cat ./abc.txt\r"}
... похоже, проверяет наличие файла на ожидаемой машине, а не на удаленной. Поэтому, если сценарий не запущен на удаленном сервере, он не будет работать.
Хм, ты, наверное, делаешь что-то довольно окольным путем.
Сначала опишите свой контекст:
Наконец, что вы на самом деле пытаетесь сделать? Если вы хотите распечатать файл в удаленной системе, вероятно, проще напрямую вызвать ssh. Expect предназначен для программ-сценариев, не имеющих языка сценариев (например, простых ftp-клиентов). Излишне сложно использовать его с командной оболочкой, в которой уже есть мощный язык сценариев.