Amazon

2013年9月22日日曜日

シェルのジョブ制御を有効にする

シェルスクリプトでは、デフォルトのでジョブ制御が無効になっています。 シェルスクリプトからバックグラウンドで実行したプロセスの制御をfgで取り戻そうとしてもジョブ制御が無効なのでうまくいきません。
$ cat test.sh
#! /bin/sh

sleep 5 &
fg %1
$ ./test.sh
./test.sh: 4: fg: job %1 not created under job control
$ 
setコマンドで-mと指定するとジョブ制御が有効になります。
$ cat test.sh
#! /bin/sh

set -m
sleep 5 &
fg %1
$ ./test.sh
sleep 5
$ 

0 件のコメント: