&&結合子を使用してコマンドラインから環境変数を取得するには?

&&結合子を使用してコマンドラインから環境変数を取得するには?

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/bashfor を使用しています。shsource

ただし、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

関連情報