Nohup VERBOSE = 1 perl script.pl

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

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

$ VERBOSE=1 perl myperlscript.pl params

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

$ nohup VERBOSE=1 perl myperlscript.pl params 

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

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

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

Ответы

Ответ 1

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

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

Ответ 2

Именно это команда env предназначена для:

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

Ответ 3

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

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