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能够将⼀个命令的标准输出插在⼀个命令⾏中任何位置。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论