[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:05919] Redirection ( was Re: 解像度の設定について )
- From: "Ken N." <kenn@xxxxxxxxxxxxxxxxx>
- Subject: [debian-users:05919] Redirection ( was Re: 解像度の設定について )
- Date: Fri, 15 May 1998 22:17:44 +0900
- X-ml-info: If you have a question, send a mail with the body "# help" (without quotes) to the address debian-users-ctl@debian.or.jp
- X-ml-name: debian-users
- X-mlserver: fml [fml 2.1A#45]; post only from members
- Message-id: <199805151240.VAA13335@xxxxxxxxxxxxxxxxxxxxxx>
- X-mail-count: 05919
- X-mailer: mnews [version 1.21] 1997-12/23(Tue)
正確さのために、一応つっこみをいれます。御容赦を。
In <199805142207.HAA23965@xxxxxxxxxxxxxxxxxxxxxxxx>
[debian-users:05895] Re: 解像度の設定について, May.15 '98 07:07 JST
g96p0935@xxxxxxxxxxxxxxxx says:
= 標準出力と標準エラー出力ともにリダイレクトするには、>のかわりに、
= 2> (sh,bash) , >& (csh,tcsh) を使います。パイプの使い方も覚えましょう。
bash$ a_command 2> hoge
は、``a_command'' のfile descriptor `2' をファイル ``hoge'' へと
むけます。`2'は典型的にはstderr, 「標準エラー出力」です。
tcsh> a_command >& hoge
は、``a_command'' の「標準出力」と「標準エラー出力」の*両方*を
ファイル ``hoge'' へとむけます。
つまり、bsh系の ``2>'' と csh系の``>&'' は意味が異なります。
``>&'' に相当することをbsh系でする場合、
bash$ a_command > hoge 2>&1
となります。
以下はついでということで。
標準出力と、標準エラー出力とを、それぞれ別のファイルに落したい場合:
bash$ a_command > hoge 2> fuga
cshのマニュアルには次のような事が書いてあります。
csh% ( a_command > hoge ) >& fuga
このあたりから段々頭痛がしてくるのですが、どうせプロセスを余計に
ひとつ起こすなら、
csh% sh -c 'a_command >hoge 2> fuga'
とでも書いた方がまだましです。ファイルではなくpipeを使う事を
考えて見ると良くわかるでしょう。
標準出力はpipeで別プロセスに渡し、標準エラー出力はファイルに
落す場合:
bash$ a_command 2> hoge | another_command
tcsh> sh -c 'a_command 2> hoge' | another_command
となります。「あほらしい」と思う人もいるかもしれません。
私はもともとはtcshユーザで、よくこういう使い方をしていました。
#実はいまだにbashにはなじめません。せめてもうすこしbug freeだと
うれしい。
-.- . -. -.
Ken Nakagaki <kenn@xxxxxxxxxxxxxxxxx>
「人は船ではない。人は会社ではない」-- Gerry Spence