From: Ahmad Fatoum <firstname.lastname@example.org>
To: Andrej Picej <email@example.com>,
Barebox List <firstname.lastname@example.org>
Subject: Re: Not successful if statements returning error code
Date: Wed, 28 Jul 2021 10:56:47 +0200 [thread overview]
Message-ID: <email@example.com> (raw)
On 23.07.21 12:18, Andrej Picej wrote:
> Hi all,
> I have a question about Hush shell and the use of its conditional statements.
> We have come upon an interesting behaviour with its return values.
> If the condition of the if statement is not true then the return value is 1 (error code), and if the condition is true the return value is 0 (success).
> Simple test:
>> if [ 0 -gt 1 ]; then
>> echo "0 gt 1, Ret: $?"
>> echo "Ret: $?"
>> if [ 2 -gt 1 ]; then
>> echo "2 gt 1, Ret: $?"
>> echo "Ret: $?"
>> Ret: 1
>> 2 gt 1, Ret: 0
>> Ret: 0
> This means that if, for example the first if statement (where condition is not met) would be at the end of a script the return value of that whole script would be 1 (error code).
> I don't think this follows standard shell behaviour. If if statement condition is not met this doesn't mean that the return value should be an error code, right?
> Using other shells (bash for example) we can see that the returned value in both cases is 0, which is expected (IMO).
> This behaviour is not new to the Hush or barebox as I could reproduce it on various previous barebox versions (2013.08.0, 2017.12.0 and 2019.11.0).
> Of course, this problem can be easily avoided if at the end of every script we use explicit exit 0. This is doable, but a little annoying.
> Although this is not a deal-breaker for us, I was wondering what is the reason behind this? How do you get around this and are there any plans to fix/modify this in the future so it follows the behaviour of other shells?
I talked with Sascha once before (off-list) about a similar issue. Missing error handling
[ x1 -eq x2 ] && echo yes || echo no
We agreed that it's ok to break scripts relying on clear hush bugs like this.
I'd thus recommend you to send a patch to fix hush instead of working around it.
> Thank you for your answer.
> Best regards,
> barebox mailing list
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
barebox mailing list
next prev parent reply other threads:[~2021-07-28 8:58 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-23 10:18 Andrej Picej
2021-07-27 5:20 ` Andrej Picej
2021-07-28 8:56 ` Ahmad Fatoum [this message]
2021-07-28 9:38 ` Denis Osterland-Heim
2021-07-29 9:22 ` Ahmad Fatoum
2021-07-29 9:48 ` Denis Osterland-Heim
2021-08-09 10:54 ` Ahmad Fatoum
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox