使っていますSAS、Unix(およびその他)用の分析パッケージです。私はPuTTYを使ってUnixシステムに接続しています。
Puttyを通じて10のSASプログラムを提出したいと思います。私の要件は、各タスクを順番に実行する必要があることです(たとえば、2番目のタスクは最初のタスクの後に実行し、3番目のタスクは2番目のタスクが完了した後に実行する必要があります)。ジョブの完了実行中にエラーが発生した場合は停止する必要があります(例えば、2番目のジョブが実行されている場合など)。ジョブにエラーがあるため、3番目のジョブを実行しないでください。)
現在、以下のようにジョブを送信していますが、問題は上記のようにすべてのジョブが同時に開始されることです。一度に1つずつ必要です。
x sasb -sv sas92 code1.sas;
x sasb -sv sas92 code2.sas;
x sasb -sv sas92 code3.sas;
ここでのコマンドx
はSASでUnixコマンドを実行する方法。 sasb
は私がこのように実行するコマンドの名前であり、同時にすべてのタスクを実行しているようです。
答え1
bashでの実行(リモートサーバーで使用していると推測されます)は、;
コマンドが順番に実行されるように区別されます。私の考えでは、あなたのコードがバックグラウンドプロセスを開始しているようです。
これを試して、&&
前の実行が成功した場合にのみ次の実行を許可します。
x sasb -sv sas92 code1.sas &&
x sasb -sv sas92 code2.sas &&
x sasb -sv sas92 code3.sas