linux中特殊字符反引号,linux中的特殊符号$ "" ‘’ 反引号 反斜杠

时间:2025-04-06 17:28:31

写在前面:Shell中的特殊字符有

$ 美元符

\ 反斜杠

` 反引号

"双引号

< ,>;,*,?,[,]

1、反引号``:命令替换

在输出一句话的时候,如果想中间加入命令输出结果,在反引号里面输入命令就可以做到,和$COMMAND是一样的。

[root@localhost ~]# echo today is `date +%F`

today is 2016-08-03

2、双引号"":弱引用,可以实现变量和命令的替换。

在双引号中可以使用变量,用$COMMAND。

[root@localhost ~]# x=*

[root@localhost ~]# echo "$x"

[root@localhost ~]# echo "`date`"

3、单引号'':强引用,不完成变量替换

在单引号中不能使用任何变量和命令。

[root@localhost ~]# x=*

[root@localhost ~]# echo '$x'

$x

[root@localhost ~]# echo '`date`'

`date`

4、$符号

作用1:用于引用变量内容变;等号赋值,变量赋值

作用2:用于行结束符

作用3:变量的间接引用;

作用4:变量的参数替换

作用5:特殊位置符

$0返回脚本名称,绝对路径;`basename $0`仅返回脚本名称,没有路径

1)echo $? 显示的是上一条指令退出状态

2)echo "$?" 效果同上

3)echo '$?' 显示的是$?

4)echo \$? 显示的是$?

5)echo "\$?" 显示的是$?

大家可能已经看出 $符号在双引号中具有特殊意义 双引号对$符号不起作用,而单引号可以将特殊字符的的特殊意义屏蔽掉,使其能显示为字符本身,反斜杠也可以将特殊字符的特殊含义屏蔽掉,使特殊字符失去特殊含义。

5.反斜杠\

反斜杠的作用是将特殊符号字符的特殊含义屏蔽掉,使其还是原字符。

A=1234

echo \$A 显示为$A 如果不加\将显示为1234

echo \` 显示为`

echo \" 显示为双引号

echo \\ 显示为\

6、` 反引号

反引号的功能是命令替换,将反引号中的字符串做为命令来执行,我们在用shell编程时经常用的到 将系统命令的执行结果赋给一个变量

A=`date`

echo $A 显示的不是date而是当时的时间串

比如有一文件A的内容如下

ABCDEFG

1234456

abcdefg

B=`cat A|grep 234`? # 检索文件A中含有字符串234的行

echo $B 将显示为1234456

echo "$B" 将显示为什么?

echo "\$B" 将显示为什么?读者自己试试

7、" 双引号

在系统中有些特殊字符,为避免引用这些特殊字符 往往用双引号或单引号将这些特殊字符引起来,使其不具有特殊含义。

但有一部分特殊字符在引号中还是具有特殊含义,用双引号引起来是不起作用的。本文中所列的前四个特殊字符在双引号中还是特殊字符。为了使其不具有特殊含义一是用单引号引进来二是用\反斜线使其失去作用。

比如我们想原样输出这些特殊字符

echo """

echo "$"

echo "\"

echo "`"

以上不是你所期望的结果,因为双引号对它们不起作用,你只能这样才能输出这些特殊字符的原形

echo '"'

echo '$'

echo '\'

echo '`'

echo "\""

echo "\$"

echo "\\"

echo "\`"

将分别显示为 " $ \ `

8、其它特殊字符

1.单引号 (' ')  单引号,不具有变量置换的功能,即单引号会告诉shell忽略所有的特殊字符,

2.双引号(" ") 双引号,具有变量置换的功能,即双引号之要求忽略大多数特殊字符,除了$(使用变量前导符), \(转义符), `(反向引号)。

3.反向引号(` `): 位于键盘Tab键上面一行的键,用作命令替换(相当于$(...))

注:命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。