请教Linux shell命令中双引号与单引号嵌套的问题

请教Linux shell命令中双引号与单引号嵌套的问题,第1张

1、首先在Linux系统中,使用echo $ 0来显示如下输出。

2、查看Linux系统上可用的所有shell,文件/ etc / shells中列出了Linux系统上可用的所有shell。 可以使用cat命令或更少的命令来查看文件的内容。

3、更改shell以使用另一个shell,要使用其他shell,只需输入其名称即可登录新shell。

4、永久更改Linux中的默认Shell,Linux允许您使用chsh命令更改默认Shell。 为您自己的登录用户更改默认Shell的最佳方法是,使用-s选项指定/ etc / shells文件中列出的Shell名称。

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

一般字符

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

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技术博客

shell脚本中的单引号和双引号一样都是字符串的界定符,而不是字符的界定符。单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是字符串中不能出现单引号。(注意是所有,只是单引号本身不能够出现在其中)。

双引号用于保持引号内所有字符的字面值(回车也不例外),但以下情况除外:

$加变量名可以取变量的值

反引号仍表示命令替换

\$表示$的字面值

\`表示`的字面值

\"表示"的字面值

\\表示\的字面值

除以上情况之外,在其它字符前面的\无特殊含义,只表示字面值。

从上就可以看出单引号和双引号的区别。下面举几个例子:

可见,单引号中完全是保持字符串的原型输出,而双引号进行了命令替换。

由上可见虽然单引号和双引号都是字符串的限定符,但还是有所区别。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存