#shell #solaris #crontab
#оболочка #solaris #cron
Вопрос:
Есть ли способ установить переменную среды непосредственно в crontab в solaris?
Я хочу, чтобы каждый скрипт в моей crontab знал определенную переменную среды. Я хочу избежать создания setupEnvironment.sh скрипт, который должны вызывать все мои скрипты.
Ответ №1:
Да, нет проблем, т.е.
59 23 31 12 * { var="value" ; export var ; /path/2/myProgram "${var}" ; } > /tmp/myProgLogFile.txt 2>amp;1
ИЛИ (аналогичная идея с ${var}, который теперь используется как «переданный в среде» MyProgram)
59 23 31 12 * { var="value" ; export var ; myProgVar="${var}" /path/2/myProgram ; } > /tmp/myProgLogFile.txt 2>amp;1
Это несколько преувеличенные примеры. Ключевым моментом является то, что вам нужно экспортировать var, чтобы он был виден для любых подпроцессов, которые запускаются группой процессов (er) ( { ... ; }
) … (Обратите внимание, что закрытие ‘;’ перед закрытием ‘}’ является обязательным и что сообщение об ошибке, если это отсутствует, не поможет вам разобраться;-))
Это верно для solaris и других устаревших unixen, где /bin/sh является переносимой оболочкой (а не bash).
Надеюсь, это поможет.
Ответ №2:
* * * * * FOO=BAR your-command
должно сделать это; он вызовет вашу команду-command с переменной среды $FOO
, установленной на "BAR"
. Вам придется делать это для каждой команды в вашей crontab; Я не думаю, что есть способ выполнить глобальную настройку.