bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to tell Bash multiple values are success?


From: Eli Schwartz
Subject: Re: How to tell Bash multiple values are success?
Date: Wed, 19 Jun 2019 11:14:37 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.1

On 6/19/19 11:01 AM, Jeffrey Walton wrote:
> Hi Everyone,
> 
> I have a systemd service that automatically applies updates. Looking
> at the service history, the service reports failure when it installs
> updates due to this:
> 
>     if dnf -y update &>/dev/null
>     then
>         echo "Upgraded system"
>     else
>         echo "Failed to upgrade system"
>         exit 1
>     fi
> 
> The problems seems to be 0, 100 and 200 are success. When updates are
> installed either 100 or 200 is returned. Confer,
> https://dnf.readthedocs.io/en/latest/command_ref.html .
> 
> I looked through Bash Variables, but I did not see a way to signal the
> information to Bash. Confer,
> https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html
> .
> 
> How do I tell Bash 0, 100 and 200 are success? (Or, how to tell Bash 1
> is the only failure?)

Neither 100 nor 200 are successes, and the page you linked explains
exactly why.

The former is only relevant to the subcommand "dnf check-update" and
indicates that your system is *not* fully upgraded and you should fix that.

The latter indicates that you successfully updated the system, but
potentially bad things occurred in the process. You can choose to
*ignore* selected errors, however, using Greg's suggestion.

There is no option to make bash dramatically redefine its entire
internal understanding of how basic unix return codes work.

-- 
Eli Schwartz

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]