对于 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