Как настроить среду crontab таким образом, чтобы она имела доступ к встроенным переменным BASH, таким как $ HOME, $ PWD, $ OLDPWD, $ USER, $ PATH, $ PS1 и т. Д., Так что скрипты, которые полагаются на эти переменные, могут работать в среде crontab? Это вопрос поиска некоторых файлов, о которых я не знаю, или вопросы немного сложнее?Crontab: доступ к внутренним переменным BASH
ответ
Эти переменные всегда заданы так, как ожидалось: HOME, PWD, USER.
При планировании вашего сценария, как это:
0 0 * * * /path/to/script.sh
и первая строка сценария #!/bin/bash
то, вероятно, он будет источником ~/.bashrc
но не ~/.bash_profile
или ~/.profile
при запуске. Помимо этого, переменные, о которых вы говорите, должны работать должным образом. Например, если вы измените каталоги в своем скрипте, то будут обновлены OLDPWD
и PWD
. Я не вижу, как PS1
будет иметь значение в скрипте.
С другой стороны, если в вашем crontab
вы хотите запланировать одну команду, и вы хотите .bashrc
быть получены, то вы должны написать так:
0 0 * * * . .bashrc; somecmd
# or:
0 0 * * * bash -c somecmd
Также имейте в виду, что, хотя вам может устанавливать переменные в crontab
, он отличается от переменных в сценарии оболочки. Например эти работы:
SHELL = /bin/bash
SHELL=/bin/bash
PATH=~/bin:/usr/bin/:/bin
Это с другой стороны, не будет делать то, что вы ожидаете:
PATH=$HOME/bin:$PATH
Как объяснены в man 5 crontab
значение (что-нибудь после =
) не разбирается, поэтому $HOME
и $PATH
в этом примере будут взяты буквально.
попробуйте использовать «EasyCronjobHandler» http://codecanyon.net/item/the-easycronjobhandler/6296537
- 1. Невозможно получить доступ к внутренним переменным класса
- 2. Доступ к «внутренним переменным» в списке
- 3. Доступ к внутренним переменным в JavaScript
- 4. Доступ к переменным bash в Pentaho Kettle
- 5. Доступ к экологическим переменным R из Bash
- 6. Доступ к внутренним переменным класса во внешнем классе Разработка Android
- 7. Доступ к внутренним переменным пакета параметров в C++
- 8. Доступ к внутренним переменным из внешних функций в javascript
- 9. Доступ к переменным в IIFE
- 10. Эффективно конечный - Доступ к внутренним классам
- 11. ConnectIQ: Доступ к внутренним датчикам
- 12. Доступ к внутренним модулям Grails
- 13. Доступ к внутренним классам из другого проекта
- 14. Доступ к переменным окружения
- 15. Доступ к приватным переменным
- 16. Динамический доступ к переменным
- 17. Доступ к переменным геттера
- 18. Доступ к переменным глобально
- 19. Доступ к переменным косвенно
- 20. Доступ к переменным parentViewController
- 21. Доступ к переменным ApplicationState
- 22. Доступ к глобальным переменным
- 23. Ограничение доступ к переменным
- 24. Доступ к переменным asp.net
- 25. Bootstrap4: Доступ к переменным?
- 26. Reactjs - доступ к переменным
- 27. Доступ к переменным javascript
- 28. Доступ к переменным пространствам contasing в bash-скрипте
- 29. bash: доступ к глобальным переменным из конвейера команд
- 30. Можно ли получить доступ к переменным окружения без «$» в bash?