bash の shell のエラー出力を捕らえて、ログとして出力したいのです。ファイルを新たに作成して出力するだけなら>& で簡単にできますが、これを追記する形の >>& に書き換えるとエラーになります。追記するにはどうしたらいいのでしょうか? 簡単に書く方法あるのでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/01/26 15:58:30
  • 終了:2009/01/26 17:19:05

回答(4件)

id:dev_zer0 No.1

dev_zer0回答回数332ベストアンサー獲得回数252009/01/26 16:26:28

ポイント30pt

http://www.linux.or.jp/JF/JFdocs/Bash-Prog-Intro-HOWTO-3.html#ss...


bashの場合、標準出力は1, 標準出力は2で出力できます。

例えば

command 2>> add.txt

とすれば、標準エラー出力の追記が出来ます。


もし、標準出力、標準エラー出力共に同一のファイルに追記したい場合は

(command 2>&1) >> add.txt

とする必要があります

id:toohigh No.2

toohigh回答回数291ベストアンサー獲得回数372009/01/26 16:27:32

ポイント20pt

/path/to/somecmd >> stderr.log 2>&1 >> stdout.log

こんな感じでいかがでしょうか。

http://q.hatena.ne.jp/

id:zzz_1980 No.3

zzz_1980回答回数492ベストアンサー獲得回数642009/01/26 16:34:41

ポイント20pt

2>>filename でいいのでは。

$ cat hoge.sh
#!/usr/local/bin/bash
echo asdf
zzzzzzz
$ ./hoge.sh
asdf
./hoge.sh: line 3: zzzzzzz: command not found
$ ./hoge.sh 2>>errlog.txt
asdf
$ ./hoge.sh 2>>errlog.txt
asdf
$ cat errlog.txt
./hoge.sh: line 3: zzzzzzz: command not found
./hoge.sh: line 3: zzzzzzz: command not found

http://www.hatena.ne.jp

id:Marin_MTB No.4

Marin_MTB回答回数40ベストアンサー獲得回数52009/01/26 16:34:52

ポイント20pt

Google

$ ls -la 2>> test.txt

これではダメですか?

csh形式にこだわらない形ですが…。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません