我在.zshrc
中有以下函数,理论上,它允许我编写提交消息而不需要引号。
cm(){
git commit -m "$@"
}
当我运行它(cm foo bar
)时,我收到以下错误:
zsh: unknown file attribute
$@
在zsh中与bash中的含义相同吗?
答案 0 :(得分:3)
根据this文章,*
和@
都包含一系列位置参数。
参数
*
,@
和argv
是包含所有位置参数的数组;因此$argv[n]
等等等于简单$n
。
和...
[*]
或[@]
形式的下标求值为数组的所有元素;两者之间没有区别,除非它们出现在双引号内。"$foo[*]"
评估为"$foo[1] $foo[2] ..."
,而"$foo[@]"
评估为"$foo[1]" "$foo[2]" ...
。