盈盈一水间,脉脉不得语

shell替换

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

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注