スクリプトを実行したときのエラー出力をファイルに保存するにはどうすればよいですか? 以下のコードがありますが、コードはエラーを追跡せず、エラーを test.log14 に保存しません。誰かが私のコードで何が間違っている可能性があるかについてのヒントを教えてもらえますか...
LOGFILE=/usr/local/etc/backups/test14.log
"$(date "+%m%d%Y %T") : Starting work" >> $LOGFILE 2>&1
次のコードを使用します。
#!/bin/bash
LOGFILE=/usr/local/etc/backups/test14.log
(
echo "$(date "+%m%d%Y %T") : Starting work"
... more commands ...
echo error 1>&2 # test stderr
echo "$(date "+%m%d%Y %T") : Done"
) >& $LOGFILE
これ()
により、BASH はほとんどのスクリプトをサブシェルで実行します。サブシェル (stderr および stdout) のすべての出力は、ログファイルにリダイレクトされます。