shell - How does Bash parameter expansion work? -
i'm trying understand bash script. stumbled upon this:
dir=${1:-"/tmp"}
what mean?
:-
operator says if $1
(first argument script) not set or null
use /tmp
value of $dir
, if it's set assign it's value $dir
.
dir=${1:-"/tmp"}
is short for
if [ -z $1 ]; dir='/tmp' else dir="$1" fi
it can used variables not positional parameters:
$ echo ${home:-/tmp} # since $home set displayed. /home/codaddict $ unset home # unset $home. $ echo ${home:-/tmp} # since $home not set, /tmp displayed. /tmp $
Comments
Post a Comment