-n Vs !(느낌표)는 테스트 명령과 다르게 동작합니다.

-n Vs !(느낌표)는 테스트 명령과 다르게 동작합니다.
#!/bin/bash
declare -A numMap
numMap[1]=1
#case-one
if ! [[ ${numMap[1]} ]];then
  echo "case-one: the key 1 for numMap array is not set"
fi
#case-two
if [[ -n ${numMap[1]} ]]; then
  echo "case-two: the key 1 for numMap array is not set"
fi

나는 유효한 값인 - 을 포함하고 있기 때문에 및 둘 다 거짓 ! [[ ${numMap[1]} ]]이기를 원합니다 . 하지만 코드를 실행하면 인쇄됩니다.[[ -n ${numMap[1]} ]]numMap[1]1

case-two: the key 1 for numMap array is not set

[[ -n ${numMap[1]} ]]사실로 평가되나요?

답변1

[[ -n ${numMap[1]} ]]문자열이 다음과 같은지 테스트합니다.아니요비어 있는. 이는 사실이 아니므로 테스트는 true를 반환합니다.

관련 정보