如果表达式中包含特殊字符,Shell 将会进行替换。例如,在双引号中使用变量就是一种替换,转义字符也是一种替换。
举个例子:
#!/bin/bash
a=10
echo -e "乾坤大挪移 $a \n"
运行结果:乾坤大挪移 10
这里 -e 表示对转义字符进行替换。如果不使用 -e 选项,将会原样输出:乾坤大挪移 10 \n
下面的转义字符都可以用在 echo 中:
可以使用 echo 命令的 -E 选项禁止转义,默认也是不转义的;使用 -n 选项可以禁止插入换行符。
命令替换
命令替换是指Shell可以先执行命令,将输出结果暂时保存,在适当的地方输出。
命令替换的语法:
`command`
注意是反引号,不是单引号,这个键位于 Esc 键下方。
下面的例子中,将命令执行结果保存在变量中:
#!/bin/bash
DATE=`date`
echo "当前日期是: $DATE"
USERS=`who | wc -l`
echo "登陆用户有 $USERS"
UP=`date ; uptime`
echo "时间: $UP"
运行结果:
当前日期是: Mon Jun 27 00:28:39 PDT 2016 登陆用户有 2 时间: Mon Jun 27 00:28:39 PDT 2016 00:28:39 up 5:29, 2 users, load average: 0.00, 0.00, 0.00
变量替换
变量替换可以根据变量的状态(是否为空、是否定义等)来改变它的值
可以使用的变量替换形式:
一个例子: