Open danielshahaf opened 4 years ago
For greppability purposes, quoting @phy1729 analysis from there:
sudo env "PATH=$PATH"
First word issudo
which is a known precommand, so next word will be parsed as a command. Next word isenv
which is a known precommand, so next word will be parsed as a command. Next word is"PATH=$PATH"
. There's a bug in z-sy-h that when parsing a command ($this_word == *:start:*
) an assignment is recognized even if it's no long the true start of a command (i.e. after a precommand), socommand foo=bar echo baz
parsesfoo=bar
as an assignment andecho
as the command even though command will error asfoo=bar
isn't a command. However in the case ofenv
this mostly is desired.env
being a command allows for quoted arguments just like any other, but assignments at the beginning of a command must not be quoted.
See https://github.com/zsh-users/zsh-syntax-highlighting/issues/627#issuecomment-639383008 and the following comments.