Bashスクリプトへのキーボードコマンドのエンコード
質問
qsubを使用してクラスターでジョブを送信するには、次の方法があります:
Submitting jobs from standard input
To submit a PBS job by typing job specifications at the command line, the user types
qsub [options] <return>
then types any directives, then any tasks, followed by
(in UNIX) CTRL-D on a line by itself
(in Windows) CTRL-Z <return>
to terminate the input.
bashスクリプトでRETURNおよびCTRL-Dをエンコードして、次のようなことができるようにする方法はありますか
for i in path/*.txt; do echo "$i"; qsub [RETURN] /path2/mycode $i; [CTRL-D]; done
解決
パイプ経由のリダイレクトを使用する必要があります:
for i in path/*.txt; do
echo "$i";
echo "/path2/mycode $i" | qsub;
done
他のヒント
echo / path2 / mycode $ iを試す| qsub
。
これが機能しない場合、またはより複雑なデータを渡す必要がある場合は、 expect 役立つかもしれません。
説明のためだけに(corvusの答えは正確に正しいため)-CTRL-Dは単に「ファイルの終わり」を意味します。または「入力の終わり」であるため、そのテキストをqsubにエコーすると、その後自動的にファイルの終わり信号が送信されます(CTRL-Dを押すのと同じです)
所属していません StackOverflow