我$==*
在我使用的几个 zsh 解决方案中找到了这个习惯用法。它似乎相当于$argv
. 但我不知道它是如何解释的。你能解释一下吗?
这是 Zsh 的参数扩展之一,应用于$*
:
${=spec}\n\n
\n在评估spec期间使用SH_WORD_SPLIT的规则执行分词,但无论参数是否出现在双引号中;如果\xe2\x80\x98=\xe2\x80\x99加倍,则将其关闭。这会强制参数扩展在替换之前被分割成单独的单词,并使用 IFS 作为分隔符。在大多数其他 shell 中,这是默认完成的。
请参阅吉尔斯对什么是分词?的典型彻底回答。为什么上下文在 shell 编程中很重要。
\n\n通常情况下,zsh
默认情况下不会进行单词拆分,因此据推测,这是为了确保即使以某种方式启用$*
该选项(例如通过 a )也不会拆分。SH_WORD_SPLIT
emulate sh
但是,在大多数情况下,您宁愿使用"$@"
(请注意此处很重要的引号)而不是$==*
. $==*
(就像关闭$*
时一样)仅扩展至非空位置参数,而扩展至所有位置参数(不管, 并且适用于所有类似 Bourne 的 shell)。SH_WORD_SPLIT
"$@"
SH_WORD_SPLIT
归档时间: |
|
查看次数: |
160 次 |
最近记录: |