${parameter:?word} 확장자: `\}` bash와 zsh의 차이점

${parameter:?word} 확장자: `\}` bash와 zsh의 차이점

}출력에 텍스트를 가져오려고 합니다.${parameter:?word}로 확장되었습니다 zsh.

Bash에서는 예상대로 작동합니다. }다음을 인용 할 수 있습니다 \.

% bash           
$ echo "${unset_var_name?Here is a close brace >>\}<<}" 
bash: unset_var_name: Here is a close brace >>}<<

하지만 zsh에서 동일한 작업을 수행하는 방법을 모르겠습니다.

% zsh                                                                                           
% echo "${unset_var_name?Here is a close brace >>\}<<}" 
zsh: unset_var_name: Here is a close brace >>\}<<

\문자 그대로의 의미 는 위에 나와 있습니다.

답변1

$var2예, 예를 들어 확장되지 않는다는 사실은 다른 모든 쉘 ${var1?$var2}의 POSIX 사양과 불필요하고 불행한 차이 입니다.sh2023년 2월 zsh에서 수정됨이므로 다음 버전(5.10 또는 6.0)에서 사용할 수 있습니다.

관련 정보