[b]Shell变量替换,命令替换,转义字符[/b]
执行结果
可以使用的变量替换形式:
${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 的值。
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 的值。