为了能够更好地理解用户的表达,Shell 解释器还提供了特别丰富的转义字符来处理输入的特殊数据。这里提列出最常用的四个
转移符:
1.反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串。
2.单引号(''
):转义其中所有的变量为单纯的字符串。
3.双引号(""
):保留其中的变量属性,不进行转义处理。
4.反引号(` `):把其中的命令执行后返回结果。
我们先定义一个名为PRICE 的变量并赋值为5,然后输出以双引号括起来的字符串与变量信息:
[root@lynchj tmp]# PRICE=5
[root@lynchj tmp]# echo "Price is $PRICE"
Price is 5
接下来,我们希望能够输出:Price is $5
,即价格是5 美元的字符串内容,但碰巧美元符号与变量提取符号合并后的$$
作用是显示当前程序的进程ID 号码,于是命令执行后输出的内容并不是我们所预期的:
[root@lynchj ~]# echo "Price is $$PRICE"
Price is 3767PRICE
要想让第一个$
乖乖地作为美元符号,那么就需要使用反斜杠(\
)来进行转义,将这个命令提取符转义成单纯的文本,去除其特殊功能。
[root@lynchj ~]# echo "Price is \$$PRICE"
Price is $5
而如果只需要某个命令的输出值时,可以像命令
这样,将命令用反引号括起来,达到预期的效果。例如,将反引号与uname -a 命令
结合,然后使用echo 命令
来查看本机的Linux 版本和内核信息:
[root@lynchj tmp]# echo `uname -a`
Linux lynchj.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
文章评论