ожидать, что спавн не выполняется - PullRequest
0 голосов
/ 26 мая 2011

привет, у меня следующий ожидаемый скрипт с именем a.exp

#!/usr/bin/expect
spawn cat a.txt

где a.txt содержит следующую единственную строку строкового текста

Hello World

затем я сделал его исполняемым с помощью следующей команды

chmod +x a.exp

Теперь я запускаю его следующим образом

./a.exp

вывод, который я получаю, выглядит следующим образом

spawn cat a.txt

с другой стороны, если я использую следующий скрипт

puts [exec cat a.txt]

вместо

spawn cat a.txt

печатает содержимое файла a.txt. плз, можете ли вы помочь мне выполнить его с помощью spawn? спасибо!

1 Ответ

4 голосов
/ 27 мая 2011

Вы не сказали ему читать что-либо из порожденной программы. Если я использую эту версию a.exp, то получится то, что я считаю правильным:

#!/usr/bin/expect
spawn cat a.txt
expect "\n";        # Wait for a newline

Если вы действительно хотите извлечь все, что пишет другая программа, не отправив ничего взамен, вместо этого используйте последнюю строку, чтобы дождаться окончания файла:

expect eof

Оба выдают именно этот результат при тестировании:

spawn cat a.txt
Hello World
...