${parameter:-default} -- 如果变量parameter没被设置, 那么就使用默认值.
#!/bin/bash
echo ${username-`whoami`}
username=
echo ${username:-`whoami`}
username=inputname
echo ${username:-`whoami`}
输出
root
root
inputname
${parameter=default} -- 如果变量parameter没声明, 那么就把它的值设为default.
${parameter:=default} -- 如果变量parameter没设置, 那么就把它的值设为default.
#!/bin/bash
echo ${username=`whoami`}
echo username1 is $username
username=
echo ${username:=`whoami`}
echo username2 is $username
username=inputname
echo ${username:=`whoami`}
echo username3 is $username
输出
t# ./test.sh
root
username1 is root
root
username2 is root
inputname
username3 is inputname
${parameter?err_msg} -- 如果parameter已经被声明, 那么就使用设置的值, 否则打印err_msg错误消息.
${parameter:?err_msg} -- 如果parameter已经被设置, 那么就使用设置的值, 否则打印err_msg错误消息
#!/bin/bash
echo ${1?"you must input a arg"}
: ${1?"you must input a arg"} #可用作判断
# ./test.sh
./test.sh: line 3: 1: you must input a arg