a=10 echo "a的值是$a\n" echo -e "加了-e转义后a的值是$a\n" #命令替换 #注意是反引号,不是单引号,这个键位于 Esc 键下方。 DATE=`date` echo "Date is $DATE" #当前登录的用户 Users=`who | wc -l` echo "当前登录的用户是 $Users" #最近更新时间是 Update=`date;uptime` echo "uptime is $Update" #变量替换 echo ${var:-"no values"} echo "var is $var" #赋值 echo ${var:="my first value"} echo “var is $var” unset var echo ${var:+"this is default value"} echo "var value is $var" var="prefix" echo ${var:+"This is default value"} echo "4 - Value of var is $var" echo ${var:?"Print this message"} echo "5 - Value of var is ${var}"
执行结果
a的值是10\n 加了-e转义后a的值是10 Date is Tue Apr 4 18:16:49 CST 2017 当前登录的用户是 1 uptime is Tue Apr 4 18:16:49 CST 2017 18:16:49 up 29 days, 22:11, 1 user, load average: 0.00, 0.01, 0.05 no values var is my first value “var is my first value” var value is This is default value 4 - Value of var is prefix prefix 5 - Value of var is prefix
可以使用的变量替换形式:
${var} 变量本来的值
${var:-word} 如果变量 var 为空或已被删除(unset),那么返回 word,但不改变 var 的值。
${var:=word} 如果变量 var 为空或已被删除(unset),那么返回 word,并将 var 的值设置为 word。
${var:?message} 如果变量 var 为空或已被删除(unset),那么将消息 message 送到标准错误输出,可以用来检测变量 var 是否可以被正常赋值。
若此替换出现在Shell脚本中,那么脚本将停止运行。
${var:+word} 如果变量 var 被定义,那么返回 word,但不改变 var 的值。