У вас уже есть возможность установить BASH_ENV
на путь к файлу, который перед запуском анализирует не -интерактивный сценарий оболочки.
Это позволяет вам сделать, например, в crontab
@hourly BASH_ENV="$HOME/.bashrc_non_interactive" "$HOME/bin/mybashscript"
или даже
BASH_ENV="$HOME/.bashrc_non_interactive"
@hourly "$HOME/bin/mybashscript"
@daily "$HOME/bin/myotherbashscript"
$BASH_ENV
обычно пуст, но ничто не мешает вам установить его глобально на вашем сервере, указав на файл под /etc
, который делает
if [ -f "$HOME/.bashrc_non_interactive" ]; then
. "$HOME/.bashrc_non_interactive"
fi
Однако, если для скрипта требуется набор определенных переменных, таких как JAVA_HOME
и т. д., то может быть лучше установить BASH_ENV
явно для каждого скрипта или явно указать источник соответствующего файла изнутри. самого скрипта или просто установить переменные в скрипте. Сбор всех вещей, которые любая не-интерактивная оболочка может захотеть использовать в одном файле, может замедлить работу скриптов и, возможно, также загрязнить среду скриптов тем, что им не нужно.