2011-11-16 112 views
6

我想用nohup運行一個腳本,但該命令碰巧需要使用變量$ *的整行參數 。我嘗試運行命令是這樣的:在採用所有參數的腳本上運行nohup命令

nohup time ./build_all all & 

但是,這是給我的nohup.out以下錯誤:

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

讚賞任何幫助。

特德

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

我意識到彼得約翰Acklam是對的。這個錯誤不是因爲nohup,而是因爲腳本,我不確定我做錯了什麼,因爲語法對我來說似乎是正確的。當我自己運行腳本時,我看不到錯誤,但是當我嘗試用nohup運行時,我看到了奇怪的錯誤。

總之,腳本的開頭是這樣的:

#!/bin/bash 

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

node=`uname -n` 

回答

6

只需簡單地將參數「build_all」在命令行上,作爲任何其他命令:

nohup time ./build_all args to build_all go here & 

和參數將傳遞給「build_all」,而不是「時間」或「nohup」。和號將被shell正確解釋,並且不會作爲參數傳遞給任何命令。

+0

這很奇怪,當我嘗試它時似乎沒有工作。錯誤可能在其他地方。 – Flethuseo

+0

我按照你的建議做了,但是,我實際上遇到了一個DISPLAY變量的奇怪錯誤 – Flethuseo

+0

「DISPLAY」變量錯誤是由於「build_all」中的語法錯誤造成的,與「nohup」或「time」無關。也許你可以在包含字符串「DISPLAY = ted:0.0」的「build_all」中顯示該行? –

1

腳本參數(參數)只是遵循腳本的名稱並位於&符號前面。

相關問題