描述Linux shell中单引号、双引号及不加引号的简单区别

描述Linux shell中单引号、双引号及不加引号的简单区别,第1张

单引号:所见即所得,即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就输出什么。

双引号:把双引号里面的内容给输出出来,如果内容中有命令、变量等,会先把,变来那个、命令解析出结果,然后输出最终内容。

双引号内的命令或者变量写法’命令或变量’或$(命令或变量)

无引号:把内容输出出来,可能不会键含有空格的字符串,视为一个整体输出,如果内容中有命令、变量等,会先把变量、命令解析出来,然后输出最终内容,如果字符串中带有空格等特殊字符,则不能完整输出,需要改加双引号。一般连续的字符串,数字,路径等可以用,不过最好用双引号,替代之。

如果有什么不懂的话可以去看看《Linux就该这么学》这本书,非常适合新手学习Linux。

双引号里可以识别变量

单引号就是纯字符串

# i=111111

# echo "$i"

111111

# echo '$i'

$i

# echo $i bash

111111 bash

但是不加引号,有时候在脚本里需要区分命令和字符串,就必须加引号,养成良好习惯

单引号与双引号的最大不同在于双引号仍然可以保有变量的内容,但单引号内仅能是

一般字符 ,而不会有特殊符号。我们以底下的例子做说明:假设您定义了一个变量,

name=VBird ,现在想以 name 这个变量的内容定义出 myname 显示 VBird its me 这

个内容,要如何订定呢?

[root@linux ~]# name=VBird

[root@linux ~]# echo $name

VBird

[root@linux ~]# myname="$name its me"

[root@linux ~]# echo $myname

VBird its me

[root@linux ~]# myname='$name its me'

[root@linux ~]# echo $myname

$name its me

发现了吗?没错!使用了单引号的时候,那么 $name 将失去原有的变量内容, 仅为

一般字符的显示型态而已!这里必需要特别小心在意!

本文出自 51CTO.COM技术博客


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8478216.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存