0

A really simple Python defaulting scheme, using an existing, but possibly empty variable goes like:

myvar = myvar or "default"

In bash, can I do simpler than:

myvar=$1  #yes, this is command line related question

if [ -z "$myvar" ]; then
    myvar=default 
fi

Something like a boolean OR operator?

myvar=$myvar||default

Jean Rostan
  • 1,056
  • 1
  • 8
  • 16
JL Peyret
  • 10,917
  • 2
  • 54
  • 73

1 Answers1

2

There are several methods for this, all using some form of parameter expansion.

(1) ${var:-alt} substitutes alt when $var does not exist or is empty.

myvar=${1:-default}

(2) ${var:=alt} sets var to alt if var is not set.

myvar=$1
: ${myvar:=default}
echo $myvar
Henk Langeveld
  • 8,088
  • 1
  • 43
  • 57