Вы хотите использовать exec
функцию в expect
скрипте, чтобы получить то же поведение, что $(...)
и в оболочке
См. Пример ниже:
Позвольте использовать внешнюю программу 4expect.sh
ниже, которую мы будем кормить без нашего expect
скрипта:
#!/bin/sh # Test program : let set filename as "4expect.sh" # in the same directory where expect script will work echo; read -p 'question: ' answer echo "Got answer:>$<"
А вот наш expect
скрипт, который будет ожидать «вопрос» от внешней программы и кормить его общим количеством файлов в текущем каталоге (получить выходные данные внешних программ ls
и egrep
), которые будут использоваться с помощью expect
s send
:
#!/usr/bin/expect -f spawn -noecho ./4expect.sh expect -re "question" { send -- [exec ls -la . | egrep "^total" ]\r } interact puts "\nDone.\n" exit