单独调用bash脚本

时间:2011-06-13 00:26:23

标签: linux bash shell unix

我需要使用一组不同的参数来调用bash脚本,这些参数会使它作为后台进程运行,所以我使用的是:

if [[ $a == $b  ]]
then
  $0 -v &> /dev/null
fi

问题是虽然我使用'&'调用与后台进程相同的脚本作为后缀并将所有输出重定向到/ dev / null,我调用脚本的终端没有被释放,我假设是因为最初被调用的脚本有一个作为前台进程运行的进程,所以查询是,如何自己调用一个bash脚本,这样当它自己调用时,第一次负责运行脚本的进程被终止,控制台被释放,第二次调用自身作为后台进程运行?

2 个答案:

答案 0 :(得分:13)

您没有使用&将其作为后台进程运行。 &>是一个完全独立的标记,可以同时重定向stdout和stderr。如果你想将该命令放在后台,它将是$0 -v &>/dev/null &

答案 1 :(得分:4)

尝试这样的事情:

nohup $0 -v &

nohup命令负责分离后台作业并忽略信号,请参见手册页。