每当我尝试运行脚本时,它都不会向我显示标准输出的任何结果。
#!/usr/bin/expect --
send [exec tail -f /var/opt/jboss/log/jbossall.log | grep -i "pattern"]
请告知原因。
答案 0 :(得分:0)
exec
命令永远不会完成,因为您正在使用tail -f
。从尾部的信息页面:“永远循环尝试读取文件末尾的更多字符”。由于exec
未完成,因此永远不会调用send
。
你可能需要这样做:
spawn whatever
set whatever_id $spawn_id
spawn sh -c {tail -f /var/opt/jboss/log/jbossall.log | grep -i "pattern"}
set tail_id $spawn_id
while {1} {
expect -i $tail_id "(.*)\n"
send -i $whatever_id $expect_out(1,string)
}