I have the following function in my .zshrc
which, in theory, allows me to write a commit message without needing quotation marks.
cm(){
git commit -m "$@"
}
When I run it (cm foo bar
), I get the following error:
zsh: unknown file attribute
Does $@
mean the same thing in zsh as it does in bash?
Accoring to this article, *
and @
both contain an array of the positional parameters.
The parameters
*
,@
andargv
are arrays containing all the positional parameters; thus$argv[n]
, etc., is equivalent to simply$n
.
And...
A subscript of the form
[*]
or[@]
evaluates to all elements of an array; there is no difference between the two except when they appear within double quotes."$foo[*]"
evaluates to"$foo[1] $foo[2] ..."
, whereas"$foo[@]"
evaluates to"$foo[1]" "$foo[2]" ...
.