我有一个预计shell,并且必须在开始时打开一个日志文件,然后在 for 循环内我想检查某些条件,如果满足这些条件我想将消息打印到屏幕而不是日志文件中
笔记:
我尝试过使用send_log
、send_error
和send_user
,puts
但它们都不适合我。每次我想将某些内容打印到屏幕而不是日志文件时,是否必须关闭 log_file 然后打开它?
代码示例:
log_file -a something.log
.
.
.
for loop {
log something to the log file
if certain condition met {
then log to a screen only
}
log_file
答案1
puts
似乎忽略了我的日志文件(expect version 5.45
Debian 8):
$ > logtest; expect -c 'log_file logtest; send_user "foo\n"; puts bar'
foo
bar
$ cat logtest
foo
答案2
回复
“puts 似乎忽略了我的日志文件(预计版本 5.45 Debian 8):”
linux shell 中的命令 do it 是工作,但是当您进入expect shell并打开日志文件然后输入puts时,这将在屏幕和日志文件上打印您想要打印的内容...
我也在使用期望版本5.45