Comment on Type-ish – A runtime type checker for bash, in bashComments−MauranKilom4ythe builtin types are:[...]boolean: a shortcut for returning a number (as numbers are booleans).Can someone explain? I can understand booleans being numbers (e.g. #define TRUE 1 in C), but how are numbers booleans in bash?−EdSchouten4yBooleans in shell scripts are little more than zero (true) and non-zero (false) exit codes.−MauranKilom4yOk, right. But then it should still say either "booleans are just numbers" or "numbers can be interpreted as booleans, i.e. are truthy or falsy".−ancientsofmumu4yIt's not that cut & dry, as bash is doing evaluations; 0 and 1 can both be "true" if simply used without an evaluation, but add logic and it starts to matter (grep returns 0 if hit, 1 if not). [[ 0 ]] && echo "hit 0" [[ 1 ]] && echo "hit 1" grep -q 127 /etc/hosts && echo "hit grep" grep -q 128 /etc/hosts || echo "miss grep"
Comments
Can someone explain? I can understand booleans being numbers (e.g. #define TRUE 1 in C), but how are numbers booleans in bash?
Booleans in shell scripts are little more than zero (true) and non-zero (false) exit codes.
Ok, right. But then it should still say either "booleans are just numbers" or "numbers can be interpreted as booleans, i.e. are truthy or falsy".
It's not that cut & dry, as bash is doing evaluations; 0 and 1 can both be "true" if simply used without an evaluation, but add logic and it starts to matter (grep returns 0 if hit, 1 if not).