Zsh Mailing List Archive
Messages sorted by:
Re: zsh precommand modifiers stop accepting argument if quoted
- X-seq: zsh-workers 40921
- From: Cuong Manh Le <cuong.manhle.vn@xxxxxxxxx>
- To: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- Subject: Re: zsh precommand modifiers stop accepting argument if quoted
- Date: Fri, 31 Mar 2017 07:50:16 +0700
- Cc: Zsh hackers list <zsh-workers@xxxxxxx>
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=c/eRB6e2RsBNCStnNHTyhf8YypsDknpwICbxirNciBs=; b=DuT/6kwtBn/jSMuSb1qjBPDjmW3dzc00jrNRSmrClk7wN53Z2csD2Cu/jcBuk00CB0 0MmSjVBl4BEL5ZsrXJOfFzIx4GhlVmX2Ouadip40Dth6qA3BHb8bp5TxPr5kcvgkjUNW XuSZP+S+B4CcxMAOU+CaY9htmiFyeCMxZKzAEvSG+PhR5MNgGuxMbOQ77F6j9u/Tsvdc RsNjC/BBxi9SoNxf4a+UBuzssn3u2PScKwbWcB4C6UhNVKcxMXvcXXxwnx+bNT2Iq/6j 5aY+AhaWVyuWixjtSekkg6NvJID2ww8aPjija+ZJHkO61aBnXo/Ywo1Z0gkWn/MikBYX YaYw==
- In-reply-to: <CAH+w=7bh1nFffhcJQ-LAcn3i0E+_OPWLobXFVLdY5_ajGJZ5tA@mail.gmail.com>
- List-help: <mailto:email@example.com>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:firstname.lastname@example.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <CALS7p_d_dgpSFdibfaTB2nKHn0oSi3DHPbyD13So=UCTsaKa2Q@mail.gmail.com> <CAH+w=7bh1nFffhcJQ-LAcn3i0E+_OPWLobXFVLdY5_ajGJZ5tA@mail.gmail.com>
So there no way to prevent an alias named "command" to expand without
breaking the script? In other Bourne-like shell, once can do:
\builtin command -v ls
but it's just broken in zsh. It doesn't work even in sh, ksh emulation, so
making zsh non-compliant there.
From user perspective, it's definitely a bug.
Cuong Manh Le
On Fri, Mar 31, 2017 at 5:42 AM, Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
> On Wed, Mar 29, 2017 at 11:00 PM, Cuong Manh Le
> <cuong.manhle.vn@xxxxxxxxx> wrote:
> > $ zsh -c '\exec -a foo zsh -c "print -- \$0"'
> > zsh:1: command not found: -a
> > $ zsh -c '\command -v ls'
> > zsh:1: command not found: -v
> > Is this behavior a feature or a bug? it it documented somewhere?
> There's no promise that precommand modifiers will work at all when
> quoted. They're syntactic tokens, so if you quote them they become
> different tokens. It just happens that "exec" and "command" are both
> implemented as builtins, so the quoted forms can still be looked up
> and run that way, but if you have changed the token then the
> corresponding syntax rules do not apply.
> This is similar to the way that "typeset" as a reserved word differs
> from "typeset" as a builtin command. The typeset dichotomy was
> introduced a lot more recently and so is more carefully documented --
> there's probably a doc clarification that could be made for the
> precommand modifiers.
Messages sorted by: