* Brace expansion in command position @ 2020-11-21 15:31 Daniel Shahaf 2020-11-21 17:56 ` Peter Stephenson 0 siblings, 1 reply; 3+ messages in thread From: Daniel Shahaf @ 2020-11-21 15:31 UTC (permalink / raw) To: zsh-workers; +Cc: Felipe Contreras [[[ % type pwd pwd is a shell builtin % {pwd,-P} zsh: command not found: pwd,-P % builtin {pwd,-P} /home/daniel ]]] I expected the second command to do what the third command does. Cheers, Daniel ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Brace expansion in command position 2020-11-21 15:31 Brace expansion in command position Daniel Shahaf @ 2020-11-21 17:56 ` Peter Stephenson 2020-11-23 4:05 ` Daniel Shahaf 0 siblings, 1 reply; 3+ messages in thread From: Peter Stephenson @ 2020-11-21 17:56 UTC (permalink / raw) To: zsh-workers On Sat, 2020-11-21 at 15:31 +0000, Daniel Shahaf wrote: > [[[ > % type pwd > pwd is a shell builtin > % {pwd,-P} > zsh: command not found: pwd,-P > % builtin {pwd,-P} > /home/daniel > ]]] > > I expected the second command to do what the third command does. "{" in command position introduces a list to be run in the current shell, not a brace expansion. So this is treated as { ... } where the ... here is the single-word command "pwd,-P" as a comma has no special meaning at this point. Actually, other shells require a space after the "{", as well as a command terminator ";" or newline before the "}", but zsh doesn't. Other shells don't need a space or terminator in the subshell form, with parentheses (...), so this is another of those minefields it's quite hard to pronounce definitely on. (This may not stop other people trying, excuse me if I don't take the bait :-).) pws ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Brace expansion in command position 2020-11-21 17:56 ` Peter Stephenson @ 2020-11-23 4:05 ` Daniel Shahaf 0 siblings, 0 replies; 3+ messages in thread From: Daniel Shahaf @ 2020-11-23 4:05 UTC (permalink / raw) To: Peter Stephenson; +Cc: zsh-workers Peter Stephenson wrote on Sat, Nov 21, 2020 at 17:56:35 +0000: > On Sat, 2020-11-21 at 15:31 +0000, Daniel Shahaf wrote: > > [[[ > > % type pwd > > pwd is a shell builtin > > % {pwd,-P} > > zsh: command not found: pwd,-P > > % builtin {pwd,-P} > > /home/daniel > > ]]] > > > > I expected the second command to do what the third command does. > > "{" in command position introduces a list to be run in the current > shell, not a brace expansion. So this is treated as { ... } where the > ... here is the single-word command "pwd,-P" as a comma has no special > meaning at this point. > > Actually, other shells require a space after the "{", as well as a > command terminator ";" or newline before the "}", but zsh doesn't. > Other shells don't need a space or terminator in the subshell form, > with parentheses (...), so this is another of those minefields it's > quite hard to pronounce definitely on. (This may not stop other people > trying, excuse me if I don't take the bait :-).) It's okay, there are plenty of fish in the sea ;-) Seriously, thanks for the answer. This seems to be partially covered by A02alias.ztst:"Aliasing reserved tokens", but I don't see any test specifically about this, so: diff --git a/Test/A01grammar.ztst b/Test/A01grammar.ztst index 35a04e7d5..c9a381812 100644 --- a/Test/A01grammar.ztst +++ b/Test/A01grammar.ztst @@ -939,3 +939,8 @@ F:Note that the behaviour of 'exit' inside try-list inside a function is unspeci $ZTST_testdir/../Src/zsh -fc '{ ( ) } always { echo foo }' 0:exec last command optimization inhibited for try/always >foo + + function 'ls,/' () {echo success} + {ls,/} +0:current-shell blocks masquerading as brace expansion (test to ensure behaviour changes aren't unintentional) +>success ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-11-23 4:06 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-11-21 15:31 Brace expansion in command position Daniel Shahaf 2020-11-21 17:56 ` Peter Stephenson 2020-11-23 4:05 ` Daniel Shahaf
Code repositories for project(s) associated with this public inbox https://git.vuxu.org/mirror/zsh/ This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).