在带有所有参数的脚本上运行nohup命令

时间:2011-11-16 14:06:21

标签: bash nohup

我正在尝试使用nohup运行脚本,但命令恰好采用了 变量$ *的整行参数。我尝试运行这样的命令:

    nohup time ./build_all all &

但是这在nohup.out中给出了以下错误:

./build_all: DISPLAY=ted:0.0: is not an identifier

任何帮助表示感谢。

特德

=============================================== ===================================

我意识到Peter John Acklam是对的。错误不是因为nohup,而是因为脚本,我不确定我做错了什么,因为语法似乎对我来说是正确的。当我自己运行脚本时,我没有看到错误,但是当我尝试使用nohup运行时,我看到了奇怪的错误,这也有点奇怪。

无论如何,脚本的开头看起来像这样:

#!/bin/bash

export DISPLAY=ted:0.0 # sets the display
export RELEASE=v1.0

node=`uname -n`

2 个答案:

答案 0 :(得分:7)

只需在命令行上将参数设置为“build_all”,就像其他任何命令一样:

nohup time ./build_all args to build_all go here &

并且参数将传递给“build_all”,而不是“time”或“nohup”。 &符将被shell正确解释,并且不会作为参数传递给任何命令。

答案 1 :(得分:1)

脚本参数(参数)只是遵循脚本的名称,并在&符号之前。