Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: grammar triviality with '&&'
On 2015-03-01 19:53:28 -0800, Kurtis Rader wrote:
> On Sun, Mar 1, 2015 at 6:27 PM, Vincent Lefevre <vincent@xxxxxxxxxx> wrote:
>
> > However "&& [ -e file2 ]" could constitute a list too. There is
> > currently a parse error, but zsh could have an extension to accept
> > it as being equivalent to: "[[ $? -eq 0 ]] && [ -e file2 ]". Would
> > there be anything wrong with such an extension?
> >
> > Similarly, "|| X" could be regarded as equivalent to
> > "[[ $? -ne 0 ]] || X" by zsh.
> >
>
> How often would such a feature be useful? Very infrequently in my opinion.
I'm not so sure. It's probably useless in a script (except for
the style as in the original post, but this may not be a good
idea to use such a feature here). But I can see an interesting
use in an interactive shell when using the history. For instance,
one may want to run 3 (long) commands from time to time, by using
the history and accept-line-and-down-history:
cmd1
cmd2
cmd3
Now, assume that as soon as some command fails, you don't want
to execute the following ones, but you still want to have the
3 commands in the history when invoking the latest cmd1 by a
history search (something I often do). Currently, the only way
to do that is, AFAIK:
cmd1
[[ $? -eq 0 ]] && cmd2
[[ $? -eq 0 ]] && cmd3
But having
cmd1
&& cmd2
&& cmd3
could be nicer (I would also like the fact that one can easier see
that these 3 commands are related).
Of course, one could also do:
cmd1 && cmd2 && cmd3
but if the commands produce output, one may prefer to run them
separately to analyze the output first (which is the main goal
of interactive use vs writing a script).
--
Vincent Lefèvre <vincent@xxxxxxxxxx> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
Messages sorted by:
Reverse Date,
Date,
Thread,
Author