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 ...
結合子は、&&
デプロイ.shスクリプトで環境変数を使用できないようにします。
デプロイスクリプトでこれを有効にするにはどうすればよいですか?
答え1
あなたの問題は次のことに関連していないと思います&&
。
/bin/sh
通常、The Shellを模倣したい他のシェルがあります。多くのディストリビューションでは、 をサポートする/bin/bash
for を使用しています。sh
source
ただし、Ubuntuでは/bin/dash
サポートされていませんsource
。ほとんどのシェルは.
代わりに使用しますsource
。これらのシステムのいずれかを使用している場合は、ファイルをsource
次のように置き換えます。.
package.json
"scripts": {
"deploy": ". private/create_env.sh && ./deploy.sh",
}
答え2
&&結合子は、デプロイ.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