テストを開始してからしばらく待ってから、シェルスクリプトを使用してプログラムを起動したいと思います。
#!/bin/bash
sleep 3 & # test
sleep 1 # wait some
sleep 4 & # run program under test
fg 1 # <-- I want to put test back in "foreground", but yields "line 5: fg: no job control"
「前景」が何を意味するのか誤解しているようですが、私が望むようにできる他の方法はありますか? (jobs -x
andをプレフィックスとして使ってみましたが、nohup
誤解が深まるようです。)
ベストアンサー1
シェルでジョブ制御を有効にするだけです。set -m
#!/bin/bash
set -m
sleep 3 & # test
sleep 1 # wait some
sleep 4 & # run program under test
jobs
fg %1
bashのマニュアルを引用すると、次のようになります。
-中
モニターモード。ジョブ制御が有効になりました。このオプションは、それをサポートするシステムの対話型シェルに対してデフォルトで有効になっています(上記のタスク制御を参照)。バックグラウンドプロセスは別のプロセスグループで実行され、完了すると終了ステータスを含む行を印刷します。