次の(少し馬鹿げた)スクリプト名 'test1.sh'を検討してください。
#/bin/bash
#
sleep 10 &
echo sleep pid = $!
pkill sleep
実行すると、エコーの出力だけでなく、stderrでのスリープの終了に関するbashのレポートも取得されます。
$ ./test1.sh
sleep pid = 3551
./test1.sh: line 5: 3551 Terminated sleep 10
この場合、stderrへの印刷を抑制したいと思います。次のように、コマンドラインで実行できることを知っています。
$ ./test1.sh 2> /dev/null
...しかし、スクリプト内からそれを抑制する方法はありますか?(私はそれを2番目のスクリプトでラップしてラッパーにリダイレクトさせることができることを知っていますが、もっと簡単なものが必要です...)
pkill sleepの後にリダイレクト2> / dev / nullを追加しようとしましたか?
—
ラーウル
@rahul:はい、そうです-pkillはメッセージを生成していません、bashは生成しています。
—
fearless_fool
pkillの代わりにkillを使用し、stderrを取得しません。奇妙な
—
.-ラール
@rahul:それは組み込みのものか非組み込みのものか?あなたもpkillで試しましたか?
—
fearless_fool
はい、そうです。pkillでも同じエラーが発生しますが、killでは発生しません。killを使用している間、proc名の代わりにpidを使用しました。
—
ラーウル