質問

いてスクリプトを記載すべてのコマンド 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/
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top