${parameter:?word} 扩展: `\}` bash 和 zsh 的区别

${parameter:?word} 扩展: `\}` bash 和 zsh 的区别

我试图}在输出中获取文字${parameter:?word}扩展于zsh.

在 bash 中,它按预期工作——我可以}用 a引用\

% 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是的,事实是,例如 in 中未扩展的事实是与所有其他 shell 以及和 的${var1?$var2}POSIX 规范的不必要且不幸的偏差sh2023 年 2 月在 zsh 中修复,因此将在下一个版本(无论是 5.10 还是 6.0)中提供。

相关内容