2012-01-11 33 views
16

我有一個perl腳本,可以將ENV變量設置爲指定特定輸出 $調試,$冗長,$開發等nohup VERBOSE = 1 perl script.pl

通常我在命令行

$ VERBOSE=1 perl myperlscript.pl params 

我現在想用nohup的運行它們運行這些。使用命令行

$ nohup VERBOSE=1 perl myperlscript.pl params 

顯然是不正確的,是試圖設置ENV {VERBOSE}被解釋爲一個參數去NOHUP &我得到了味精

nohup的:無法運行命令'VERBOSE = 1':沒有這樣的文件或目錄

什麼是正確的語法在這裏?我試圖在Linux機器上運行這個。

回答

31

在調用nohup之前設置環境變量,當nohup exec()s(用自己替換)perl時,它將被保留。

$ VERBOSE=1 nohup perl myscript.pl params ... 
+0

謝謝。應該有我自己的想法。這是漫長的一天... – bobox 2012-01-12 15:39:05

1

嘗試將所有命令組合成shell腳本並運行它這樣的: nohup的/path/to/script.sh

或者你可以使用出口:出口 VERBOSE = 1 然後: 的nohup perl的myperlscript.pl PARAMS

3

這也正是env命令是什麼:

$ env VAR1=VAL1 VAR2=VAL2 nohup perl myperlscript.pl params &