我对在UNIX/Linux中运行脚本相当陌生。我有一个包含环境信息的.env文件和一个包含该环境的文件夹创建等的.sh脚本。如何在.env文件中包含的环境中运行脚本,或者如何将脚本指向目标环境?是否会像以下那样简单:
bash 'scriptname.sh' 'filename.env'
k97glaaz1#
在启动脚本之前,您需要在调用shell中获取环境源:
source 'filename.env' && bash 'scriptname.sh'
为了防止调用shell的环境受到污染,您可以在子shell中运行该命令:
(source 'filename.env' && bash 'scriptname.sh')
k2arahey2#
. ./filename.env sh scriptname.sh
第一个命令在shell中设置env.变量,第二个命令将使用它来执行自己。
8wtpewkr3#
创建一个名为run_with_env.sh的文件,内容如下
run_with_env.sh
#!/bin/sh ENV_FILE="$1" CMD=${@:2} set -o allexport source $ENV_FILE set +o allexport $CMD
将权限更改为755
755
chmod 755 run_with_env.sh
现在使用以下命令运行bash文件
./run_with_env.sh filename.env sh scriptname.sh
3条答案
按热度按时间k97glaaz1#
在启动脚本之前,您需要在调用shell中获取环境源:
为了防止调用shell的环境受到污染,您可以在子shell中运行该命令:
k2arahey2#
第一个命令在shell中设置env.变量,第二个命令将使用它来执行自己。
8wtpewkr3#
创建一个名为
run_with_env.sh
的文件,内容如下将权限更改为
755
现在使用以下命令运行bash文件