我找到了这段代码(简化)
while read item; do
echo -n "${(q)item} "
done
从这里https://github.com/junegunn/fzf/blob/master/shell/key-bindings.zsh#L12
我不理解表达式"${(q)item} "
。
什么是变量q
,我没有找到任何声明,是否是命令替换?为什么括号在花括号内使用?这种结构的含义是什么?
答案 0 :(得分:1)
在${
指定parameter expansion flags后立即使用括号。 q
标志用于引用扩展中的特殊字符。
在带有反斜杠的结果字中引用shell特有的字符;使用$' \ NNN'来引用不可打印或无效的字符。形式,每个八位字节都有单独的引号。