Question: ❓❓❓


I have a whole bunch of tests on variables in a bash (3.00) shell script where if the variable is not set, then it assigns a default, e.g.:

if [ -z "${VARIABLE}" ]; then 
    FOO='default'
else 
    FOO=${VARIABLE}
fi

I seem to recall there’s some syntax to doing this in one line, something resembling a ternary operator, e.g.:

FOO=${ ${VARIABLE} : 'default' }

(though I know that won’t work…)

Am I crazy, or does something like that exist?


Good Answer: 👌👌👌

Very close to what you posted, actually:

FOO=${VARIABLE:-default}  # If variable not set, use default.

Or, which will assign default to VARIABLE as well:

FOO=${VARIABLE:=default}  # If variable not set, set it to default.

Read More: 👉 https://stackoverflow.com/questions/2013547/assigning-default-values-to-shell-variables-with-a-single-command-in-bash

Categories: developerknowledge