- - PR -
メッセージを画面とlogにを同時に
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-10-18 09:58
シェル内部に任意で返りメッセージを作成して
それを画面出力とlogへの保存に同時にしたいのですが リダイレクトを使用して試行錯誤しましたがうまくいきませんでした。 teeやscriptコマンドを使用せず、リダイレクトで処理したいのですが どなたかご存知の方アドバイスお願いします。 | ||||||||
|
投稿日時: 2005-10-18 10:22
おはようございます.
logger ではダメですか? | ||||||||
|
投稿日時: 2005-10-18 11:00
| ||||||||
|
投稿日時: 2005-10-18 11:31
おはようございます。
…ところで、何故 tee は不採用なのでしょうか?
| ||||||||
|
投稿日時: 2005-10-18 11:49
もう一つ追加
・Before
・After
| ||||||||
|
投稿日時: 2005-10-18 12:43
angelさん、コブラさん、kazさん
ご返答ありがとうございます。 ボクの質問の仕方が曖昧でした。 明白に再度質問内容を記載します。 シェルスクリプト内にとあるシステムへのコマンドを実行します。 その返りメッセージ実行後に任意で作ったユーザが判断しやすい出力メッセージを作成します。 その返りメッセージと実行後のメッセージ(エラーしかないですが)logに保存しつつ、画面に出力させたいです。 因みにシェルスクリプト内に二つの保存させたいlogファイルを作成し スクリプト内部にシステムに対し何度かコマンドと任意のメッセージを作成します。 流れの中でA.log、B.logは順不同で出てきます。 それを出力&logに保存させたいです。 出来るならechoは一度しか使わず、リダイレクトとコマンドで何とかしたいのが希望です。 ソースが長くならない、キレイだからと言う単純な理由ですが。 angelさん コマンド使用せずリダイレクトの組み合わせで何とかならないかと思いがありまして。 散々調べて出来なかったので、ここでアドバイスをもらいに来ました。 今のトコ teeで">>"上書きが一番有力かなと。 コマンドorもしくはecho >> file名 ;tail -n1 file名 ってのも浮かびましたが、echoは一行ですがエラーメッセージが複数行の時もありますので。 | ||||||||
|
投稿日時: 2005-10-19 00:34
出力メッセージを一時ファイル(例えばmsg.tmpとか)に作成して、
cat msg.tmp | tee -a logfile とするのはどうでしょうか? | ||||||||
|
投稿日時: 2005-10-24 11:21
yellowさん
返信ありがとうございます。 一時ファイルで思いついたのですが スクリプト内で一時ファイルを作成して、logに落としながらすぐさま tail -fが一番と思いつきました。 結局teeを使うも コマンド|tee -a log.log で画面出力とlog作成するものの このあとecho $?でコマンド返り値を知りたかったのですが この場合「tee」の返り値になってしまうと言う結果に陥りました。 一時ファイル&tail -fで試してみます。 |