1、如果表达式中包含特殊字符,Shell 将会进行替换。例如,在双引号中使用变量就是一种替换,转义字符也是一种替换。
举个例子:
#!/bin/bash
a=10
echo -e "Value of a is $a \n"
运行结果:
\n 换行
Date is 2017年 09月 11日 星期一 15:44:50 CST
Logged in user are 2
Uptime is 15:44:50 up 7:05, 2 users, load average: 0.07, 0.04, 0.00
15:44:50 up 7:05, 2 users, load average: 0.07, 0.04, 0.00
举个例子:
#!/bin/bash
a=10
echo -e "Value of a is $a \n"
运行结果:
Value of a is 10
这里 -e 表示对转义字符进行替换。如果不使用 -e 选项,将会原样输出:
Value of a is 10\n
下面的转义字符都可以用在 echo 中:
转义字符 含义\\ 反斜杠
\a 警报,响铃\b 退格(删除键)
\f 换页(FF),将当前位置移到下页开头\n 换行
\r 回车
\t 水平制表符(tab键)\v 垂直制表符
可以使用 echo 命令的 -E 选项禁止转义,默认也是不转义的;使用 -n 选项可以禁止插入换行符。
2、命令替换
命令替换是指Shell可以先执行命令,将输出结果暂时保存,在适当的地方输出。
命令替换的语法:
`command`
注意是反引号,不是单引号,这个键位于 Esc 键下方。
下面的例子中,将命令执行结果保存在变量中:
例:
#!/bin/sh
DATE=`date`
echo "Date is $DATE"
USERS=`who | wc -l`
echo "Logged in user are $USERS"
UP=`uptime`
echo "Uptime is $UP"
echo `uptime`
运行结果:
$ ./test.shDate is 2017年 09月 11日 星期一 15:44:50 CST
Logged in user are 2
Uptime is 15:44:50 up 7:05, 2 users, load average: 0.07, 0.04, 0.00
15:44:50 up 7:05, 2 users, load average: 0.07, 0.04, 0.00