使用 .env 文件运行 shell 脚本

问题描述 投票:0回答:4

我对于在 UNIX/Linux 中运行脚本还相当陌生。我有一个包含环境信息的 .env 文件和一个包含该环境的文件夹创建等的 .sh 脚本。

如何在 .env 文件中包含的环境中运行脚本,或者如何将脚本指向目标环境?

会像这样简单吗:

bash 'scriptname.sh' 'filename.env'
linux shell unix command
4个回答
58
投票

在启动脚本之前,您需要在调用 shell 中获取环境:

source 'filename.env' && bash 'scriptname.sh'

为了防止污染调用 shell 的环境,您可以在子 shell 中运行它:

(source 'filename.env' && bash 'scriptname.sh')

12
投票
. ./filename.env 
sh scriptname.sh

第一个命令设置环境。 shell 中的变量,第二个将使用它来执行自身。


9
投票

创建一个名为

run_with_env.sh
且包含以下内容的文件

#!/bin/bash
ENV_FILE="$1"
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

0
投票

如果您的文件不使用

export
,这就能解决问题。

export $(cat filename.env | xargs) && ./scriptname.sh

不污染环境。执行命令后将变量添加到会话中,您应该用括号将整个命令括起来。

(export $(cat filename.env | xargs) && ./scriptname.sh)
© www.soinside.com 2019 - 2024. All rights reserved.