Answers:
如果要加载crontab中的所有bash脚本,请BASH_ENV
在crontab级别进行设置。
BASH_ENV=/path/to/startup.bash
12 34 * * * /path/to/bash_script
1 23 1 * * /path/to/other_bash_script
如果只想BASH_ENV
为特定条目设置,请在此处进行设置。然后BASH_ENV
将不会为crontab本身中列出的代码设置代码,但是无论如何都不要在其中放置任何复杂的代码。
12 34 * * * export BASH_ENV=/path/to/startup.bash; /path/to/bash_script
1 23 1 * * /path/to/other_bash_script
如果您希望特定的脚本始终加载某些配置文件,请直接从脚本内部加载它。
#!/bin/bash
. /path/to/configuration.bash
…
export
荷兰国际集团$BASH_ENV
,如果你只是将它设置为一个单一的过程?只要BASH_ENV=/path/to/startup.bash /path/to/bash_script
是明智的办法做到这一点。
BASH_ENV
仅在非交互式外壳中读取,并且仅在该外壳是bash外壳(并且也不以名称调用sh
)时读取。非登录交互式外壳程序不查找$BASH_ENV
:
$ export BASH_ENV=/home/cuonglm/bash-env.sh
$ bash -lci '. test.sh'
QWERTY
$ bash -lc '. test.sh'
BASH_ENV read
QWERTY
$ bash -ci '. test.sh'
QWERTY
$ bash -c '. test.sh'
BASH_ENV read
QWERTY
没有在非交互式外壳程序中为用户运行的标准文件。您应该将其设置在单独的文件中,然后将其来源:
bash -c '. ~/.profile; echo 123'
或者,您可以在某些系统范围的配置文件(例如/etc/environment
或)中进行设置/etc/bashrc.bashrc
。
pam_env
。或者只是$HOME/.env
在所有脚本中提供源代码。