I noticed something strange (at least for me it's strange). I am writing a script and I need 0 or 1 as exit codes. So far so good. I have them in a simple if-else with echo $? above each condition but when I make the echo $? as a variable to call it's always showing 0 as exit code.
#!/bin/bash
exit=`echo $?`
DIRECTORY="/some/dir"
if [[ $(stat -c "%a" "$DIRECTORY") == "777" ]]
then
echo $?
#echo "The exit code is: $exit"
else
echo $?
#echo "The exit code is: $exit"
fi
#EOF
If use just "echo $?" it's all good. I receive 0 or 1. But in the commented part I always receive 0.
exit=$?
works just as well asexit=$(echo $?)
.stat
command or of the test?