shell中的替换包含:shell变量替换,命令替换,转义字符
变量替换
在双引号中包含变量时,shell将会替换其为变量的值。如:
#!/bin/bash name="John" echo "Hello, ${name}"运行结果
Hello, John.变量替换可以根据变量的状态(是否为空、是否定义等)来改变它的值。
变量替换形式:
形式 说明 ${var} 变量本来的值 ${var:-word} 如果变量为空或已被删除(unset),那么返回word,但不改变var的值。 ${var:=word} 如果变量为空或已被删除,则返回word,并且将var的值设为word。 ${var:?message} 如果变量为空或已被删除,则将消息message送到标准错误输出,可以用来检验var是否可以被正常赋值。
此命令如果出现在shell脚本中,执行此语句会导致shell脚本停止运行。
${var:+word} 如果变量var被定义,则返回word,但不改变var的值。 例如执行如下语句:
echo ${var:-"var is not set."} echo ${var:="Hello world!"} echo ${var}运行结果:
var is not set. Hello world! Hello world!
转义字符
转义字符表
字符 含义 \\ 反斜杠 \a 警报,响铃 \b 退格 \f 换页,将当前位置移动的下页开头 \n 换行 \r 回车 \t 水平制表符 \v 垂直制表符 以上转义字符可以使用在echo命令中,实现转义。
有echo中,也可以使用-E参数禁止转义,-e命令为开启转义。echo默认是不转义的。
命令替换
命令替换是指shell可以先执行命令,将输出结果暂时保存,在适当的地方输出。
命令替换的语法:
`command`
是一对反引号括起的命令。如:
#!/bin/bash DATA=`data` echo "Data is ${data}输出结果:
Tue Aug 2 20:22:20 CST 2016