Мне нужно определить переменную окружения со значением задания cron. Значение будет следующим:

"0 0 * * * *"

Это будет выполнено как команда bash на linux. Является ли это возможным? Как я мог достичь этого?

1 ответ1

2

Да, это возможно. Вам не нужно делать ничего особенного, кроме как следовать обычному синтаксису языка программирования.

Например, в Bash вы бы использовали:

export myvar="0 0 * * *"

В Python:

os.environ["myvar"] = "0 0 * * *"

Или, если значение действительно должно включать кавычки, как в вашем примере:

export myvar="\"0 0 * * *\""

os.environ["myvar"] = "\"0 0 * * *\""

Вы, вероятно, видите проблемы с выполнением этого в sh/bash, потому что echo $myvar выводит неправильное значение. Но значение, хранящееся в переменной, вероятно, совершенно нормально - проблема в том, как вы пытаетесь вывести значение.

В sh/bash расширение переменных выполняется как отдельный шаг перед расширением по шаблону. Если имя переменной оставить без кавычек, исходная команда echo $myvar сначала расширится до правильного значения echo 0 0 0 * * - и затем будут выполнены шаги разделения слов и расширения глобуса, превратив вывод в список файлов имена.

(Да, это также может произойти во время назначения. Однако я видел гораздо чаще, что люди забывают об этом во время выхода; присвоение значения с пробелами, вероятно, естественно напоминает людям о цитировании.)

Правильный способ вывода переменной - echo "$myvar" . (Чтобы проверить тип переменной и необработанное содержимое, bash имеет declare -p myvar .)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .