When I want to take action on a failure I do:
if ! commmand; 
then
    echo $?
fi
But the exit code is always 0.
When I want to take action on a failure I do:
if ! commmand; 
then
    echo $?
fi
But the exit code is always 0.
 
    
    If you need to exit status later, you might consider saving it in a variable:
command
status=$?
if (( status != 0 )); then
    echo $status
fi
 
    
    I fixed it by removing the ! negation and using an empty then block:
if commmand; 
then :
else
    echo $?
fi
Related questions:
