sh
スクリプトをデバッグしています。これらのコード行の動作は何ですか?
SOME_VAR=$(env)
if [ ! -z ${SOME_VAR+x} ]; then
echo "SOMETHING HAPPENED "
fi
+x
この場合 とはどういう意味ですか? コードは で正常に動作することがわかりましたがbash
、 では動作しませんsh
。
編集:ここで説明されているように、Eclipse Cheローカルインスタンスの展開に取り組んでいます。
.sh スクリプトである Eclipse Che CLI をインストールしました。
$ curl -sL https://raw.githubusercontent.com/eclipse/che/master/che.sh > /usr/local/bin/che
$ chmod +x /usr/local/bin/che
それを機能させるには、次を使用して実行する必要がありますbash
。
$ bash che start
スクリプトをデバッグすると...
$ sh -x che start
スクリプトはここで失敗します:
get_list_of_che_system_environment_variables() {
[...]
if [ ! -z ${CHE_VARIABLES+x} ]; then
env | grep CHE_ >> $DOCKER_ENV
RETURN=$DOCKER_ENV
fi
何かが機能していません。置換が .sh でも機能するはずだと言う場合、何が問題になるのでしょうか?