2

スクリプトを実行したときのエラー出力をファイルに保存するにはどうすればよいですか? 以下のコードがありますが、コードはエラーを追跡せず、エラーを test.log14 に保存しません。誰かが私のコードで何が間違っている可能性があるかについてのヒントを教えてもらえますか...

 LOGFILE=/usr/local/etc/backups/test14.log

 "$(date "+%m%d%Y %T") : Starting work" >> $LOGFILE 2>&1
4

3 に答える 3

4

次のコードを使用します。

#!/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) のすべての出力は、ログファイルにリダイレクトされます。

于 2015-01-28T13:36:26.603 に答える