如何为像 bash -c bla.sh 这样的脚本提供环境

如何为像 bash -c bla.sh 这样的脚本提供环境

我注意到,例如,在使用 bash -c bla.sh 启动脚本时,不会获取 ~/.bashrc。那么我还能如何提供环境变量呢?最好不要在调用中明确设置它们。

答案1

您可以在命令行上提供它们(您已声明您不想要):

MYVAR=hello ./bla.sh

您可以先设置并导出它们:

MYVAR=hello
export MYVAR
./bla.sh

或者

export MYVAR=hello
./bla.sh

您可以设置“环境“文件,并在脚本中提供该文件(这是~/.bashrc处理方式):

echo "MYVAR=hello" > test.env
./bla.sh

之内bla.sh

source test.env
echo ${MYVAR}

请注意,.(句点/点)是 的别名source,因此您可以用. test.env代替source text.env

如果你想进口你的~/.bashrc,那么你可以使用source ~/.bashrc...但这通常会为终端/交互式环境配置一些东西——这不是脚本的运行方式。

相关内容