标签:转义 com 区别 变量 反转 不用 echo 总结 协议
1.单引号和双引号的区别
str=yalong
echo "The str is $str" >> The str is yalong #双引号中的$str被其值yalong替换,即双引号允许变量替换。
echo ‘The str is $str‘ >> The str is $str #单引号中的内容被原样输出,即单引号不允许变量替换。
总结:单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单引号(对单引号使用转义符后也不行)
双引号里可以有变量,允许变量替换
双引号里可以出现转义字符
2.不用引号和用引号(单引号或者双引号)的区别
[robot@hadoop103 ~]$ A=HELLO WORLD
bash: WORLD: command not found...
[robot@hadoop103 ~]$ A=‘HELLO WORLD‘
[robot@hadoop103 ~]$ echo $A
HELLO WORLD
[robot@hadoop103 ~]$ A=HELLO \t world
bash: t: command not found...
[robot@hadoop103 ~]$ A=‘hello \t world‘
[robot@hadoop103 ~]$ echo $A
hello \t world
[robot@hadoop103 ~]$ A="hello \t world"
[robot@hadoop103 ~]$ echo $A
hello \t world
总结:定义变量时,若等号右侧的字符串中含有空格或者制表符,换行符时,要用引号将打算赋值的字符串括起,否则报错。
关于转义字符\的使用:
echo "hello world" >> hello world #这里面双引号就是双引号,不输出
echo \"hello world\" >> "hello world" #输出双引号,这里用了转义字符\所以双引号失去了引号功能,成了字符串。
3.反引号的使用``,执行里面的命令
[robot@hadoop103 ~]$ echo aa=`date +%H` #这里用的是反转义字符,esc下面的那个符号。
aa=23
[robot@hadoop103 ~]$ echo aa="date+%H" #这里用的是双引号,命令失效。
aa=date+%H
A=`ls -la` 反引号,运行里面的命令,并把结果返回给变量A
A=$(ls -la) 等价于反引号
A=`pwd` & echo $A
A=$(pwd) $ echo $A
————————————————
版权声明:本文为CSDN博主「牛大财有大才」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_26442553/article/details/79905735
标签:转义 com 区别 变量 反转 不用 echo 总结 协议
原文地址:https://www.cnblogs.com/kakaisgood/p/11818977.html