Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Avoiding the zshells intelligence...in one case



On 24/01/17 07:58 AM, Eric Cook wrote:
And does so during both of those alias definitions, you may be confusing what happens
during the definition of the alias and what happens during the execution of the alias.

Running:
% alias -L

Will show you that both alias were defined exactly as you inputted them, because the single
quotes prevented the expansions

Sure, but if we have any chains -- one command calling another -- we end up loosing the quotes as things are passed along.

And ignoring the expansions of the commandline, the original poster used an url that contains
an ampersand; & isn't an expansion, just other shell syntax that a noglob-like option or bart's
current attempts will not be able to disable.

And that's just what I'm saying -- it would be nice to have some sort of bomb-proof zero expansion ability.

% curl -s http://site?param&disown
Can be a legal site url, but could also be meant as a curl command to be ran in the background and
disown that process. short of reading the user's mind how would you make it easier?
prepending noglob is already two more characters than '', then you would need an `nosyntax' like
command to deactivate &.

My suggestions are really questions in disguise, it's interesting to consider how any of this could really be done. All I know for sure is that half or more of my own troubles with zsh have been efforts to stop expansion of one thing or another, or to protect some character from being interpreted or stripped out.

I just don't see how remembering to use an alias/option is less inconvenient than remembering to use
single quotes on strings with questionable characters.

Not convenient, that's hardly the point. More like predictability and robustness and transparency. FWIW I've always thought that terseness in code is a false virtue since it isn't typing that slows us down, but design and debugging and -- where terseness is the rule -- just studying up on the correct syntax can take a thousand times longer than the actual keystrokes.

hell, with recent versions of zsh with bracketed-paste you could copy and paste this entire email
into your shell, invoke the quote-line widget, then prefix print -r -- and have a command that will
work anywhere regardless of the options set (rcquotes being the sole exception) or alias/functions
that the user may have.
True, there's almost always a way. Seems the only thing that's impossible is passing a command's literal arguments to the command, tho noglob is at least a partial cure for that. But, as time goes by, I confess that more and more I see the virtues of zsh's way of looking at things, but I do like pondering alternatives.





Messages sorted by: Reverse Date, Date, Thread, Author