安全に次のジョブを流す方法
例えばGromacsなんかはMDを行うと、基本的には設定した保存間隔置きに出力ファイルを書き足していきますが、1つ例外のファイルがあります。
groファイルには最終構造のみが記述されるため、計算が終了するまで出力されないのです。
これを利用して、計算Aのgroファイルが見つかったら次の計算Bへ、という命令をスクリプトに組み込めば、実は計算Aが途中で止まっていたけど構わずBが始まってしまった、という凡ミスを無くすことができます。
#ファイルがない間ループ while (! -f mdA.gro) echo mdA.gro not exist sleep 300 #300秒=5分置きに探す end echo mdA.gro exist! #以降に次の処理が続く
この方法は結構前に後輩から聞いて良いな!と思ったものの、当時の自分(シェルスクリプト初心者)では上手く書けず失敗し、放置していたのでした。