Marcel
Marcel

Reputation: 1191

zsh: unknown file attribute

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?

Upvotes: 12

Views: 76883

Answers (2)

Sameer
Sameer

Reputation: 5188

If you are also getting this similar error zsh: unknown file attribute: 1 while running a command then it may be due to character ( and )

For me I was trying to delete a git remote branch with name example-(123) it throws the above mentioned error, you can fix it by wrapping the branch name in single/double quotes e.g below

git push --delete origin "example-(123)"

Upvotes: 5

Adam Lee
Adam Lee

Reputation: 1894

Accoring to this article, * and @ both contain an array of the positional parameters.

The parameters *, @ and argv 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]" ....

Upvotes: 10

Related Questions