2014-11-05

スクリプト内部で子プロセスをバックグラウンド実行し、親プロセスと一緒に終了する

子プロセスはバックグラウンドで動作し、1秒おきに.を出力

親プロセスとしては、10秒間スリープして"finish."を表示するというもの

スクリプトの中身はこんな感じ

$ cat test.sh 
#! /bin/bash
ppid=$$
while( ps -p $ppid > /dev/null 2>&1 );do
  echo -n "."
  sleep 1
done &

sleep 10
echo -e "\nfinish."

実行するとこうなる
$ ./test.sh 
..........
finish.
親プロセスが終了すると、バックグラウンドで実行していた.を出力する子プロセスも終了してますねヾ(*・∀・)ノ"

0 件のコメント:

コメントを投稿