ウォーティー"を走る毎にコマンドはシェルスクリプト?
質問
いてスクリプトを記載すべてのコマンド tee
"dへのログファイルです。
私は今走る毎にコマンドのスクリプトthusly:
<command> | tee -a $LOGFILE
があるので、努力のコマンドでシェルスクリプトパイプ tee
?
できませんが必要となる場合があり適切に追加 tee
ングの実行時に スクリプト, いついてアフターサービスについてログに適切な場合でも、呼び出しユーザーさんを追加ログ呼び出します。
解決
できなラッパー内部にスクリプト:
#!/bin/bash
{
echo 'hello'
some_more_commands
echo 'goodbye'
} | tee -a /path/to/logfile
編集:
こちらは別の方法:
#!/bin/bash
exec > >(tee -a /path/to/logfile)
echo 'hello'
some_more_commands
echo 'goodbye'
他のヒント
なぜなラッパるだけです:
/path/to/yourOriginalScript.sh | tee -a $LOGFILE
ユーザーは実行されない(もも知) yourOriginalScript.sh
.
このスクリプトをせずに --tee
引数は、これを実行する事ができます。(う場合に使用する引数で置き換え --tee
以下の引数を使用ください):
#!/bin/bash
if [ -z "$1" ] || [ "$1" != --tee ]; then
$0 --tee "$@" | tee $LOGFILE
exit $?
else
shift
fi
# rest of script follows
このスクリプトを再実行そのものを使用し、特別の引数 --tee
防止に無限再帰、配管、入出力 tee
.
一部のアプローチする創造のランナーのスクリプト"run_it"すべてのユーザーを呼び出す独自のためのイントロダクションです。
run_it my_script
すべてのマジックが行われてしまうわけで、例えばこのように見えること:
LOG_DIR=/var/log/
$@ | tee -a $LOG_DIR/
所属していません StackOverflow