私はいくつかのSASプログラムを持っています
test1_2.sas
test3_4.sas
test7_8.sas
そして、私はnohup
それらのスクリプトをすぐに実行したいと考えています。次のようなシェル ラッパーを作成しようとしましたtest.sh
。
#test running multiple files
testing1_2.sas &
testing3_4.sas &
nohup sas test.sh &
そして、とを呼び出してみました。 どちらのコマンドも、明らかにフォルダーに保存されているにもかかわらず、 が現在のディレクトリにないことをnohup test.sh &
通知します。test.sh
nohup
私はまだシェル スクリプトの初心者なので、複数の SAS プログラムで実行するための適切な方法を見つけるために助けていただきたいです。よろしくお願いします。
答え1
私は nohup の大ファンではありません (代わりに disown を使用します) が、シェル スクリプト内の各コマンドの前に 'nohup' を付けると、質問の nohup 部分が実現されます。
しかし、ファイルは SAS プログラムだと思いますか? SAS を各 SAS プログラムで並列実行したい場合は、次のようにします。
nohup sas test1_2.sas &
nohup sas test3_4.sas &
etc.
これにより、それぞれ独自の SAS プログラムを持つ独立した SAS コマンドが実行されます。
nohup コマンドを続行すると、出力が生成されると、それらはすべて同時に nohup.out に書き込まれます。これを防ぐには、出力とエラー メッセージをコマンドごとに別々のファイルに書き込みます。
nohup sas test1_2.sas > output1_2.file 2>&1 &
nohup sas test3_4.sas > output3_4.file 2>&1 &
etc.
コメントからのコードを含めるために追加されました:
test.shコマンドを呼び出すには、
bash test.sh
(「bash」はお気に入りのシェルです)または実行可能としてマークします。
chmod +x test.sh
あなたは初心者なので、これが質問に対する正しい答えであると思われる場合は、必ずチェックマークをクリックしてください。