运行 shell 使用 .env 文件的脚本
Running shell script using .env file
我对 UNIX/Linux 中的 运行ning 脚本相当陌生。我有一个包含环境信息的 .env 文件和一个包含该环境的文件夹创建等的 .sh 脚本。
如何 运行 .env 文件中包含的环境脚本或如何将脚本指向目标环境?
会不会像这样简单:
bash 'scriptname.sh' 'filename.env'
. ./filename.env
sh scriptname.sh
第一个命令设置环境。 shell 中的变量,第二个将使用它来执行自身。
在启动脚本之前,您需要在调用 shell 中获取环境源:
source 'filename.env' && bash 'scriptname.sh'
为了防止调用环境的污染 shell 你可以 运行 在子 shell:
(source 'filename.env' && bash 'scriptname.sh')
创建一个文件,名称可能是 run_with_env.sh
,内容如下
ENV_FILE=""
CMD=${@:2}
set -o allexport
source $ENV_FILE
set +o allexport
$CMD
将权限更改为 755
chmod 755 run_with_env.sh
现在 运行 使用以下命令bash 文件
./run_with_env.sh filename.env sh scriptname.sh
我对 UNIX/Linux 中的 运行ning 脚本相当陌生。我有一个包含环境信息的 .env 文件和一个包含该环境的文件夹创建等的 .sh 脚本。
如何 运行 .env 文件中包含的环境脚本或如何将脚本指向目标环境?
会不会像这样简单:
bash 'scriptname.sh' 'filename.env'
. ./filename.env
sh scriptname.sh
第一个命令设置环境。 shell 中的变量,第二个将使用它来执行自身。
在启动脚本之前,您需要在调用 shell 中获取环境源:
source 'filename.env' && bash 'scriptname.sh'
为了防止调用环境的污染 shell 你可以 运行 在子 shell:
(source 'filename.env' && bash 'scriptname.sh')
创建一个文件,名称可能是 run_with_env.sh
,内容如下
ENV_FILE=""
CMD=${@:2}
set -o allexport
source $ENV_FILE
set +o allexport
$CMD
将权限更改为 755
chmod 755 run_with_env.sh
现在 运行 使用以下命令bash 文件
./run_with_env.sh filename.env sh scriptname.sh