`declare -p VAR`이 설정되지 않은 지역 변수에 대해 "declare --VAR"을 반환하지만 설정되지 않은 전역 변수에 대해 "bash: 선언: A: 찾을 수 없음" 오류가 발생하는 이유는 무엇입니까?

`declare -p VAR`이 설정되지 않은 지역 변수에 대해 "declare --VAR"을 반환하지만 설정되지 않은 전역 변수에 대해 "bash: 선언: A: 찾을 수 없음" 오류가 발생하는 이유는 무엇입니까?

난 이해가 안 돼요:

$ declare -i VAR=0; \
> echo "$A"; \
> fun() { local -i VAR=1; echo {; echo "$VAR"; declare -p VAR; unset VAR; echo "$VAR"; declare -p VAR; echo }; };\
> fun; \
> echo "$VAR"; \
> declare -p VAR; \
> unset VAR; \
> echo "$VAR"; \
> declare -p VAR;
0
{
1
declare -i VAR="1"

declare -- VAR     # <-- no error message
}
O
declare -i VAR="0"

bash: declare: VAR: not found  # <-- error message

호출하면 왜 declare -p VAR다른 결과가 나오나요? 내 말은, 어떤 경우에는 VAR전역 변수이고 다른 경우에는 지역 변수라는 것을 알고 있습니다 . 하지만 그 배후에 있는 일부 "메커니즘"을 더 깊이 이해했다면 결과를 예측할 수 있었을까요?

declare -p그렇지 않다면 여기서 다른 결과를 제공하려는 의도가 있습니까 ? 그렇다면 왜 그렇습니까?

관련 정보