如何同时 nohup 多个 SAS 程序?

如何同时 nohup 多个 SAS 程序?

我有几个 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不在当前目录中。

我对 shell 脚本编写还很陌生,并且希望获得一些帮助来找到nohup在多个 SAS 程序上运行的正确方法。谢谢!

答案1

我不是 nohup 的忠实粉丝(我使用 disown 代替),但是如果您将“nohup”放在 shell 脚本中每个命令的前面,它将完成您问题的 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”是您最喜欢的 shell)或将其标记为可执行文件:

chmod +x test.sh

由于您是新用户,如果您认为这是问题的正确答案,请确保并单击​​复选标记。

相关内容