我有一个脚本,它将文件按特定值进行grep,但grep的响应不会保存在expect\u out(缓冲区)中。以下是我的代码:
#!/usr/bin/expect
set prompt "(%|>|#|\\$)"
#set prompt "(%|>|\\$)"
set pidBash [ spawn bash ]
puts "\nStarting script....."
send -- "\n"
expect -re $prompt {}
set output $expect_out(buffer)
send -- "grep '^option' /home/pb791b/udhcpd.conf | grep lease\n"
sleep 4
expect -re $prompt {}
set output $expect_out(buffer)
set outputLines [split $output "\n"]
set len [llength $outputLines]
puts "\nlen: $len\n"
for {set i 0} {$i<[expr $len]} {incr i} {
set line [lindex $outputLines $i]
puts "line $i: $line"
}
exec kill $pidBash
puts "\nprocess Bash terminated"
puts "End script."
pb791b@pb791b-VirtualBox:~/devtest/ngs/base/Tests/shellScripts$ ./temp2.sh
spawn bash
Starting script.....
pb791b@pb791b-VirtualBox:~/devtest/ngs/base/Tests/shellScripts$
grep '^option' /home/pb791b/udhcpd.conf | grep lease
pb791b@pb791b-VirtualBox:~/devtest/ngs/base/Tests/shellScripts$ grep '^option' /home/pb791b/udhcpd.conf | grep lease
option lease 864000 # 10 days of seconds
pb791b@pb791b-VirtualBox:~/devtest/ngs/base/Tests/shellScripts$
len: 3
line 0:
line 1: grep '^option' /home/pb791b/udhcpd.conf | grep lease
line 2: pb791b@pb791b-VirtualBox:~/devtest/ngs/base/Tests/shellScripts$
process Bash terminated
End temp.sh script.
pb791b@pb791b-VirtualBox:~/devtest/ngs/base/Tests/shellScripts$
当我打印expect_out(buffer)时,它先打印grep命令,然后打印提示符,但缺少grep“option lease 864000#10天秒”的输出