killコマンドでメッセージを出力させない方法
小粋空間 » Linux » killコマンドでメッセージを出力させない方法
killコマンドでメッセージを出力させない方法を紹介します。
1.問題点
次のサンプルスクリプト(foo.sh,bar.sh)を用意します。
foo.sh
#!/bin/bash
bar.sh &
pid=$!
kill $pid >/dev/null 2>&1
sleep 1
bar.sh
#!/bin/bash
while [ 1 ]
do
sleep 1
done
foo.shを実行するとbar.shのkillコマンドでメッセージが表示されます。
実行結果
# ./foo.sh
./foo.sh: 7 行: 59318 Terminated bar.sh
メッセージを表示させないようにしたいのですが方法が分かりません。
2.対処
foo.shにwaitコマンドを追加します。
foo.sh
#!/bin/bash
bar.sh &
pid=$!
kill $pid
wait $pid 2>/dev/null
sleep 1
実行結果
# ./foo.sh