Un shell no interactivo y sin inicio de sesión intentará obtener cualquier script especificado en $ BASH_ENV. Pero, ¿cómo puedo garantizar que $ BASH_ENV esté configurado antes de que un trabajo cron o script tenga la oportunidad de establecer $ BASH_ENV para una sesión en particular? ¿Es la única opción para compilar Bash con él codificado?
bash
environment-variables
Igorio
fuente
fuente
pam_env
. O simplemente fuente$HOME/.env
en todos sus scripts.Respuestas:
Si desea que se carguen todos los scripts de bash en su crontab
BASH_ENV
, configúrelo en el nivel crontab.Si desea establecer
BASH_ENV
solo una entrada en particular, configúrela allí. EntoncesBASH_ENV
no se establecerá para el código que figura en el crontab, pero es una mala idea poner algo complejo allí de todos modos.Si desea que un script en particular cargue siempre algún archivo de configuración, cárguelo directamente desde el script.
fuente
export
ing$BASH_ENV
si sólo se está configurando para un solo proceso? SimplementeBASH_ENV=/path/to/startup.bash /path/to/bash_script
es la forma sensata de hacerlo.BASH_ENV
solo se lee en un shell no interactivo , y solo si ese shell es bash (y tampoco se llama bajo el nombresh
). Un shell interactivo sin inicio de sesión no busca$BASH_ENV
:No hay ningún archivo estándar que se ejecute en un shell no interactivo para el usuario. Debe configurarlo en un archivo separado y luego obtenerlo:
O puede configurarlo en algún archivo de configuración de todo el sistema como
/etc/environment
o/etc/bashrc.bashrc
.fuente