TLSを使用しない場合は変数を設定しないか空にする必要がUSE_TLS
ありますが、TLSを強制する必要がある場合は変数を設定する必要があります。デフォルトでは(つまり、設定)適用する必要がありますが、設定する他の変数を指定した場合は適用されません。null
1
do_not_use_tls
1
# this assigns null or empty
USE_TLS=${do_not_use_tls:-""}
# this assigns empty or null
USE_TLS=${do_not_use_tls:+""}
USE_TLS
設定するかどうかにかかわらずこれを設定しますが、それ以外の場合は値を割り当てないオーバーライドはありますか?次を試していますが、動作しません。do_not_use_tls
null
USE_TLS=${do_not_use_tls:+${do_not_use_tls:-""}}
USE_TLS=${do_not_use_tls:-${do_not_use_tls:+null}}
ベストアンサー1
あなたが探しているものは次のとおりです。
unset -v USE_TLS
[ "${do_not_use_tls-}" = 1 ] || USE_TLS=1
まずUSE_TLS
、変数の設定を解除してから(以前の値がないと確信している場合は必ずしも必要ではありません)、isを1
除いて設定します。$do_not_use_tls
1
または、より具体的に言えば、
if [ "${do_not_use_tls-}" = 1 ]; then
unset -v USE_TLS
else
USE_TLS=1
fi
"${do_not_use_tls-}"
代わりに"$do_not_use_tls"
akaが適用されている場合は、エラーを生成しないために使用してください。set -u
set -o nounset
USE_TLS
表示した例(値が変数の一部の拡張である割り当て形式である)を実際に使用することはできません。なぜかどうかを確認するにはdo_not_use_tls
テスト値が必要です。$do_not_use_tls
1