私予想されるシェルで最初にログファイルを開く必要があり、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シェルで実行するコマンドは機能しますが、予想シェルに移動してログファイルを開き、putsと入力すると、画面とログファイルに印刷する内容が印刷されます。
私もバージョン5.45を使用しています。