現在走ってるjobの終了を待って次のジョブを投入したい→tailを使う
普通に考えると wait かな、って思うんだけど、けっこう前に走らせたジョブがあって、という場合、
[pid] is not a child of this shell
とか怒られてうまくいかない。いろいろググったところ、なんと tail を使えというお言葉が…:
bash - WAIT for "any process" to finish - Stack Overflow
どうやら --pid= というオプションがあったらしい…。そこで、
#!/bin/bash PID=終わるのを待ってるジョブの番号 tail -f --pid=${PID} /dev/null time nohup ./a.out > log.txt &(みたいな、次のジョブのコマンド)
という超短いスクリプトを書いて、wait_run.sh みたいな名前で保存して、
$ ./wait_run.sh &
とやったら、行けた模様。もちろんジョブ番号やコマンドを引数にすればもっといい…というかたぶんワンライナーで書けるんだとは思う。ただ、単にセミコロンでつなぐとバックグラウンドに回ってくれないかなんかで、うまくいかなかった。bashのことが何もわかっていない…orz けど動いたので、いいか…