用于在服务器上提交作业的简单脚本

用于在服务器上提交作业的简单脚本

我正在尝试编写一个简单的脚本,用于在没有作业排队系统的服务器上“提交作业”。在 bash 终端中,我认为我可以使用以下命令nohup来实现这一点,例如:

nohup bash -c 'echo "Hello world" > foo.out' &>/dev/null

但是,我想将其作为 bash 命令来实现,因此我可以使用以下命令执行上述操作:

bgrun 'echo "Hello world" > foo.out' 

现在,我为此编写 bash 脚本时遇到了困难。因此,我得到了以下内容:

#!/bin/bash

cmd="bash -c '$*'" 
nohup $cmd &>/dev/null

现在,如果我运行上述代码,输出将被定向到/dev/null而不是foo.out。有什么办法可以解决这个问题吗?

答案1

我尝试如下:

#!/bin/bash

cmd="bash -c '$*'"
nohup $cmd > /tmp/foo.out

我按如下方式执行:

sh -x nohup.sh ls

/tmp/foo.out我可以看到文件列表的o/p 。

答案2

看来我可以通过以下方式实现我想要的eval

#!/bin/bash

cmd="nohup bash -c '$*' &>/dev/null &" 
eval $cmd

相关内容