Default value substitution
suggest change``` ${parameter:-word}
If parameter is unset or null, the expansion of word is substituted.
> Otherwise, the value of parameter is substituted.
$ unset var $ echo “${var:-XX}” # Parameter is unset -> expansion XX occurs XX $ var="" # Parameter is null -> expansion XX occurs $ echo “${var:-XX}” XX $ var=23 # Parameter is not null -> original expansion occurs $ echo “${var:-XX}” 23
> ```
${parameter:=word}
If parameter is unset or null, the expansion of word is assigned to > parameter. The value of parameter is then substituted. Positional > parameters and special parameters may not be assigned to in this way.
$ unset var
$ echo "${var:=XX}" # Parameter is unset -> word is assigned to XX
XX
$ echo "$var"
XX
$ var="" # Parameter is null -> word is assigned to XX
$ echo "${var:=XX}"
XX
$ echo "$var"
XX
$ var=23 # Parameter is not null -> no assignment occurs
$ echo "${var:=XX}"
23
$ echo "$var"
23
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents