Re: bash usage.
On Thu, Oct 26, 2017 at 11:12:16PM +1100, David Margerison wrote:
>
> That's a fair point, but the documentation of the 'if' statement in 'man bash'
> will make that immediately clear to anyone who cares to read it.
>
You must regularly deal with different sorts of people than I do :-)
> The [[ test, the $? parameter, and the =0 test are three separate
> redundancies that are not needed here to achieve the desired result.
>
> So the code you gave is a good illustration of how $? works, but should
> also be identified as a bad example of how to correctly achieve the goal
> in this case.
>
That all depends on the definition of "correct" for a given situation.
If I were writing example code for my students that meant to illustrate
something I would likely choose something different than if I were
writing for a production environment with a team consisting of
experienced developers.
> Because in shell syntax, the 'if' statement is conceived and intended
> to be used directly with any/all commands.
>
> So I believe that good guidance should make that point clearly, and that
> is my reason for writing again here, to present that alternative.
>
> Also, some shells do not support [[ and its syntax differs from [ and 'test'
> in various fun ways.
>
This is a good point, but the given example started with "#!/bin/bash"
indicating that the author likely intended to use bash-specific
constructs.
Personally, when I write specifically for bash (as opposed to more
generally for sh) I favor [[ over [ and test.
Regards,
-Roberto
--
Roberto C. Sánchez
Reply to: