Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Detecting failure of a Bash "export" value

Tags:

bash

scripting

In Bash I'm executing a command and putting the result in a variable like this:

export var=`svn ls`

But if SVN fails for some reason--say it returns a non-zero error code--export still returns status code 0. How do I detect if the executed command fails?

like image 973
Adam Ernst Avatar asked Dec 30 '22 08:12

Adam Ernst


2 Answers

var=`svn ls`
if [[ $? == 0 ]]
then
        export var
else
        unset var
fi

$? is the exit code of the last command executed, which is svn ls here.

jmohr's solution is short and sweet. Adapted mildly,

var=`svn ls` && export var || unset var

would be approximately equivalent to the above (export of a valid identifier will never fail, unless you've done something horrible and run out of environment space). Take whatever you want -- I use unset just to avoid $var possibly having a value even though it's not exported.

like image 139
ephemient Avatar answered Jan 18 '23 18:01

ephemient


var=`svn ls` && export var
like image 40
jmohr Avatar answered Jan 18 '23 17:01

jmohr