Hacker News new | ask | show | jobs
by MauranKilom 1462 days ago
> the 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?

1 comments

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).

    [[ 0 ]] && echo "hit 0"
    [[ 1 ]] && echo "hit 1"
    grep -q 127 /etc/hosts && echo "hit grep"
    grep -q 128 /etc/hosts || echo "miss grep"