我有几个 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
由于您是新用户,如果您认为这是问题的正确答案,请确保并单击复选标记。