nohup VERBOSE = 1 perl script.pl - PullRequest
       22

nohup VERBOSE = 1 perl script.pl

16 голосов
/ 11 января 2012

У меня есть сценарий perl, для которого переменные ENV могут быть установлены для направления конкретных выходных данных, например, $ debug, $ verbose, $velop и т. Д.

Обычно я запускаю их из командной строки

$ VERBOSE=1 perl myperlscript.pl params

Теперь я хочу запустить их с помощью nohup.Использование командной строки

$ nohup VERBOSE=1 perl myperlscript.pl params 

явно не правильно, поскольку попытка установить ENV {VERBOSE} интерпретируется как параметр nohup, и я получаю сообщение msg

nohup: не удалось запуститькоманда `VERBOSE = 1 ': нет такого файла или каталога

Какой здесь правильный синтаксис?Я пытаюсь запустить это на Linux-коробке.

Ответы [ 3 ]

33 голосов
/ 11 января 2012

Установите переменную среды перед вызовом nohup, и она будет сохранена, когда nohup exec () s (заменит себя на) perl.

$ VERBOSE=1 nohup perl myscript.pl params ...
3 голосов
/ 12 января 2012

Это именно то, для чего предназначена команда env:

$ env VAR1=VAL1 VAR2=VAL2 nohup perl myperlscript.pl params &
1 голос
/ 11 января 2012

Попробуйте объединить все команды в сценарий оболочки и запустить его так: nohup /path/to/script.sh

Или вы можете использовать экспорт: экспорт VERBOSE = 1 А потом: nohup perl myperlscript.pl params

...