local
‘s exit code overrides the one from the command substitution. To work around this, always split apart local
declarations from assignments if the assignments could fail:
local URI
URI=`python3 example.py $DB`
RESULT=$?
By the way, you don’t need to save the exit code in a variable if you check it in the if
statement. Also, it’s best to avoid uppercase variable names as they could clash with built-in names. Finally, I recommend using $(...)
in place of backticks; it is easier to nest substitutions.
local db=$1
local uri
if uri=$(python3 example.py "$db"); then
echo "$uri"
echo success
else
echo failed
fu
CLICK HERE to find out more related problems solutions.