sh
スクリプトをデバッグしています。これらのコード行の動作は何ですか?
SOME_VAR=$(env)
if [ ! -z ${SOME_VAR+x} ]; then
echo "SOMETHING HAPPENED "
fi
この場合、+x
はどういう意味ですか?コードはbash
で正常に動作しますが、sh
では正しく動作しません。
EDIT:私は、Eclipse Cheローカルインスタンスのデプロイメントには、hereのように取り組んでいます。
私は.SHスクリプトであるEclipseのチェ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でも動作するはずだと言うと、何が問題になるでしょうか?
コードはPOSIX互換のシェルでも同じに動作します。 – chepner
「sh」ではコードが機能しないのはどういう意味ですか?すべてのコマンドは 'sh'で有効です。 –
@redmm私は自分の質問を編集して、問題の可能性があることを示しました – JonDoe297