命令替换
用反斜杠表示shell先执行命令,并将返回的信息保存在变量中,最后再输入,比如下面代码
DATE=`date`
echo "Date is ${DATE}"
效果如下图
变量替换
变量替换可以根据变量的状态(是否为空,是否定义来改变值)
${var:-word}
当var没有定义的时候,返回word,否则返回var
echo ${var:-"use -"}
var=10
echo ${var:-"use -"}
效果图如下:
${var:=word}
当var没有定义的时候,给var赋值word,否则不改变var的值
echo ${var:="use ="}
echo ${var}
var2=10
echo ${var2:="use ="}
echo ${var2}
${var:+word}
当var有定义的时候,返回word,但是不改变var的值,如果没定义的不返回任何值
var=10
echo ${var:+"use +"}
echo ${var}
echo ${var2:+"use +"}
效果如下:
${var:?word}
当var没定义时候,返回word作为错误信息,同时停止脚本
echo ${var2:?"not var2"}
echo ${var2}
效果如下,最后一句也没有输出空行就停止了