It would seem to me that this is a bug in zsh. It is demonstrable like this:
ubuntu@quantal$ sh -c 'f="foo=bar"; echo ${f%%=*}' foo ubuntu@quantal$ bash -c 'f="foo=bar"; echo ${f%%=*}' foo ubuntu@quantal$ zsh -c 'f="foo=bar"; echo ${f%%=*}' zsh:1: * not found
It is work-aroundable by escaping the '=' in the shell suffix match with a '\'. Ie: zsh -c 'f="foo=bar"; echo ${f%%\=*}' foo
It would seem to me that this is a bug in zsh.
It is demonstrable like this:
ubuntu@quantal$ sh -c 'f="foo=bar"; echo ${f%%=*}'
foo
ubuntu@quantal$ bash -c 'f="foo=bar"; echo ${f%%=*}'
foo
ubuntu@quantal$ zsh -c 'f="foo=bar"; echo ${f%%=*}'
zsh:1: * not found
It is work-aroundable by escaping the '=' in the shell suffix match with a '\'. Ie:
zsh -c 'f="foo=bar"; echo ${f%%\=*}'
foo