On Mon, May 30, 2011 at 05:38:56PM +0300, Dotan Cohen wrote:
All commands return a value, usually 0 if run properly. For instance, try: $ ls && echo "done" $ lsd && echo "done"
The echo command is only executed if the ls command exited successfully. If one did not add the echo command with the && after a command, how can he determine if the command exited successfully? I have a particularly troubling script that gives does not mention if it exits successfully or not. I could modify it (and probably will some day) but in general I'd like to know the answer to this question as a learning experience.
Yes, all commands return a value UNLESS it was written by one of the idi,... er, misguided programmers who thinks its ok to write (in C):
void main (void) { ... exit(); }
because, of course, in C main() always returns SOMETHING.
I'm sure it's the same in a bash script, even if the script doesn't explicitly provide a return value I imagine the shell returns something anyway, it's just that it's meaningless when that happens.