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

写在前面: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能够将一个命令的标准输出插在一个命令行中任何位置。

posted @ 2018-08-22 09:31  蹲坑蘑菇  阅读(5837)  评论(0编辑  收藏  举报