Мне нужно определить переменную окружения со значением задания cron. Значение будет следующим:
"0 0 * * * *"
Это будет выполнено как команда bash на linux. Является ли это возможным? Как я мог достичь этого?
Да, это возможно. Вам не нужно делать ничего особенного, кроме как следовать обычному синтаксису языка программирования.
Например, в 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
.)