#!/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를 반환합니다.