![如何使用 && 组合器在命令行中获取环境变量?](https://linux22.com/image/230032/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20%26%26%20%E7%BB%84%E5%90%88%E5%99%A8%E5%9C%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%AD%E8%8E%B7%E5%8F%96%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%EF%BC%9F.png)
对于 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/bash
for 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