【RHCA+】转义字符和$()

【RHCA+】转义字符和$()

“ 目录:RHCA+ -> 5 Shell脚本 -> 3-2 转义字符和$() ”

一、反斜杠(\)

使反斜杠后面字符变为单纯的字符,不包含特殊含义;若在命令末尾输入\后回车,\将屏蔽回车键的提交命令功能,以此实现命令的多行输入

[root@wuzuniao ~]# echo * #默认*表示所有文件

anaconda-ks.cfg initial-setup-ks.cfg

[root@wuzuniao ~]# echo \* #转义后屏蔽字符本身特殊含义

*

[root@wuzuniao ~]# echo 1\ #取消回车键提交命令功能,实现多行输入

> 2\

> 3

123

[root@wuzuniao ~]#

二、单引号(' ')

全局转义其中所有字符为单纯的字符串,取消特殊含义

[root@wuzuniao ~]# echo '*' #单引号内字符都只显示字符本身

*

[root@wuzuniao ~]#

三、双引号(" ")

作用类似于单引号,取消特殊字符的特殊含义;但不屏蔽 反引号(` `)、反斜杠(\)、变量($)的含义,若需屏蔽时,要再在这三种字符前加转义字符 反斜杠(\)

[root@wuzuniao ~]# martlet=5 #定义一个名为martlet的变量并赋值为5(临时定义的变量重启后消失)

[root@wuzuniao ~]# echo martlet = $martlet #这种执行方式把每个空格间隔的字符当做一个单独的参数处理

martlet = 5

[root@wuzuniao ~]# echo "martlet = $martlet" #双引号括起来便被当成了一个整体;一般在参数中出现空格,就加双引号;没有空格时可不加双引号

martlet = 5

[root@wuzuniao ~]# echo "martlet = $$martlet" #想输出martlet = $5,但美元符号与变量提取符号合并后的$$作用是显示当前程序的进程ID号码(当前终端的PID)

martlet = 1856martlet

[root@wuzuniao ~]# echo "martlet = \$$martlet" #使用反斜杠(\)进行转义,可以将命令提取符转义成单纯的文本显示

martlet = $5

[root@wuzuniao ~]#

四、反引号(` `)、$()

将其中的命令执行后返回结果;tab键上面的按键

相同效果的命令还有 $(uname -a)

[root@wuzuniao ~]# echo `uname -a` #输出某个命令的输出值,可以像`命令`这样,将命令用反引号括起来

Linux wuzuniao.cn_1.100 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

[root@wuzuniao ~]# echo $(uname -a) #输出命令的值

Linux wuzuniao.cn_1.100 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

[root@wuzuniao ~]#