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