如何使用 && 组合器在命令行中获取环境变量?

如何使用 && 组合器在命令行中获取环境变量?

对于 NodeJs 应用程序,我编写了以下脚本来部署该应用程序:

"scripts": {
  "deploy": "source private/create_env.sh && ./deploy.sh",
}

private/create_env.sh创建脚本中使用的环境变量deploy.sh

export USERNAME=alphonsio
export SERVER=ftp.example.com
export ...

组合&&器会阻止环境变量在deploy.sh 脚本中可用。

如何使它们在部署脚本中可用?

答案1

我相信你的问题与以下内容无关&&

/bin/sh通常是其他一些试图模仿 The Shell 的 shell。许多发行版使用/bin/bashfor sh,它支持source.

但在 Ubuntu 上/bin/dash使用的是不支持source.大多数 shell 使用.而不是source.如果您使用的是这些系统之一,请在文件中替换source为 :.package.json

"scripts": {
  "deploy": ". private/create_env.sh && ./deploy.sh",
}

答案2

&& 组合器阻止环境变量在deploy.sh 脚本中可用。

不,没有。

如果我有create_env.sh这样的:

#!/bin/sh
export SOME_CUSTOM_VAR=foo

deploy.sh这样:

#!/bin/sh

echo "Value is: $SOME_CUSTOM_VAR"

然后运行:

source create_env.sh && ./deploy.sh

生产:

Value is: foo

相关内容