bashshell中的单引号和双引号有什么区别?

在命令行中,用引号括住文本是相当标准的做法,特别是在处理名称中有空格的文件时,但是如何知道是使用单引号还是双引号?让我们来看看它们的区别,以及何时应该使用其中一种。...

bashshell中的单引号和双引号有什么区别?

在命令行中,用引号括住文本是相当标准的做法,特别是在处理名称中有空格的文件时,但是如何知道是使用单引号还是双引号?让我们来看看它们的区别,以及何时应该使用其中一种。

一般的规则是双引号仍然允许扩展引号中的变量,而单引号则不允许。请继续阅读。

带简单文本的引号

如果你只是简单地把几个单词的文字括起来,你用哪一个并不重要,因为它们的作用完全相同。例如,这两个命令都将创建一个名为Test directory的目录:

mkdir "Test Directory" mkdir 'Test Directory'

更有经验的类型可能会注意到,如果需要,还可以使用mkdir Test\Directory。

壳变量展开

在命令行上处理变量时,单引号和双引号之间的区别变得更加重要。默认情况下,bash将把$test之类的变量扩展为完整字符串。首先,我们将分配变量:

test="This is a test"

现在您可以在命令行上使用这个变量,如下所示,它只需将这是一个测试输出到控制台:

echo $test

这里是双引号和单引号之间的区别变得更加明显,当你使用单引号时,变量不会被扩展。例如,如果运行以下命令:

echo '$test'

当您使用单引号时,在命令行上只会看到“$test”,但当您使用双引号时,它会正确输出:

bashshell中的单引号和双引号有什么区别?

当您在命令行中使用`字符展开命令时,也可以使用同样的方法。例如,假设您想在另一个命令中使用pwd命令,您可以使用backticks来告诉shell展开它:

echo `pwd`/test

如果您在主文件夹中,您会看到如下输出:

/home/geek/test

例如,您所在的文件夹路径中有一个空格,您希望使用ln命令创建指向当前目录中文件的符号链接。在使用ln命令时,通常需要指定完整路径,因此使用“pwd”保存键入要容易得多。

看看当您尝试使用命令而不使用引号时会发生什么:

ln –s `pwd`/test /home/geek/linkedname

bashshell中的单引号和双引号有什么区别?

相反,您需要用引号括起来:

ln –s "`pwd`/filename" /some/other/path

对于一个更具体的示例,假设我们有一个类似于此示例的文件夹结构,其中所有文件名中都有空格:

bashshell中的单引号和双引号有什么区别?

由于unzip命令不支持使用*对所有文件运行它,因此您需要改用for命令。下面是事情变得有趣的地方:

for f in *.zip;do unzip $f;done

哎呀!看来没用。

bashshell中的单引号和双引号有什么区别?

我们需要做的是在$f变量周围使用双引号,如下所示:

for f in *.zip;do unzip "$f";done

现在,每次for命令通过循环时,它实际上都会运行这样一个命令:

unzip "test 1.zip"

当然,它会循环并对目录中的每个文件运行类似的命令。

让我们回顾一下

既然我们已经看完了这些例子,我们将快速回顾一下,以防您错过:

双引号

  • 当您要在字符串中包含变量或使用shell扩展时使用。
  • 中的所有字符都被解释为常规字符,但$或`将在shell上展开。

单引号

  • 单引号内的所有字符都解释为字符串。

就这样结束了引用的课程。明智地使用它们。

  • 发表于 2021-04-11 06:40
  • 阅读 ( 117 )
  • 分类:互联网

你可能感兴趣的文章

如何在linux上使用echo命令

...能。 回声?回声! 大多数Linux系统提供两个版本的echo。bashshell内置了自己的echo,还有一个二进制可执行版本的echo。 通过使用以下命令,我们可以看到两个不同的版本: type echo whereis echo type命令告诉我们作为参数传递给它的...

  • 发布于 2021-04-03 00:31
  • 阅读 ( 181 )

如何在linux上创建别名和shell函数

使用别名和bashshell函数创建自己的Linux命令。驯服重复性的任务,截断冗长的进程,并用您经常使用且难以记住的选项配置标准命令。 别名和shell脚本是Linux和类Unix操作系统中的强大技术,允许您将命令行体验磨练为您想要的。...

  • 发布于 2021-04-03 03:45
  • 阅读 ( 209 )

如何从终端打开ubuntu nautilus文件浏览器

...上角的X按钮。 您还可以创建一个包含“nautilus.”命令的bashshell脚本。这允许您按Alt+F2从Unity访问命令栏,键入“nh”(或您为脚本指定的任何文件名),然后按Enter,打开主目录而不打开终端窗口。 注意:你也可以点击结果图...

  • 发布于 2021-04-11 08:02
  • 阅读 ( 137 )

如何使用基本正则表达式更好地搜索和节省时间

...例子向你们展示之前,我们想指出一些事情。我们将使用bashshell和grep命令演示如何应用正则表达式。问题是,有时我们需要使用需要传递给grep的特殊字符,bash shell将解释该字符,因为shell也使用它。在这种情况下,我们需要“...

  • 发布于 2021-04-12 20:50
  • 阅读 ( 147 )

shell脚本初学者指南3:更多基本命令和链

...见,单引号和双引号的行为不同。有关更多信息,请查看bashshell中单引号和双引号的区别? cat–此命令将文本文件的内容显示为输出。 cat file_to_be_read 假设我们在nano中创建这个文本文件: 当我们对文件使用cat命令时,我们可...

  • 发布于 2021-04-12 20:58
  • 阅读 ( 154 )

2010年20篇最佳操作极客linux文章

...。这里有10种方法。 从命令行生成随机密码的10种方法 bashshell中的单引号和双引号有什么区别? 在命令行中,用引号括住文本是相当标准的做法,特别是在处理名称中有空格的文件时,但是如何知道是使用单引号还是双引号?...

  • 发布于 2021-04-13 02:58
  • 阅读 ( 198 )

引用(quoting)和释义(paraphrasing)的区别

...获得帮助。这主要是为了科研。这是为了利用科学家工作中的参考资料作为参考点,并进一步推进研究。这有助于我们的知识每天都在增长和达到新的高度。 为了避免所谓的剽窃,也就是剽窃一个人的作品,有引用和解释的技...

  • 发布于 2021-06-23 20:55
  • 阅读 ( 429 )

单一的(single)和双引号(double quotes)的区别

... 单引号是一对单引号,写为(''),特别用于另一个引号中的引号。从定义上看,单引号是用来表示报价单中的报价单的。 她解释了发生的事情,“我刚从房子里出来,就听到他喊‘小心简’”。 她说:“我走在人行道上,突...

  • 发布于 2021-06-27 05:17
  • 阅读 ( 460 )

引用(quote)和引用(quotation)的区别

...“引述”一词指的是重复另一个人写的或说的文本或演讲中的单词来证明一个观点。然而,请记住,在现代的非正式用法中,quote也被用作名词来代替quote 报价也指工作或服务的估计价格。当有人说“**给他报了50美元”时,这意...

  • 发布于 2021-06-27 05:19
  • 阅读 ( 627 )

倒逗号(inverted commas)和引号(quotation marks)的区别

...号和引号是两个经常用来指代标点符号“”的术语。你们中的许多人可能会思考倒逗号和引号之间的区别。事实上,倒逗号和引号指的是同一个标点符号;语标、引号、引号和倒引号是同义词。但重要的是要认识到倒逗号或引号...

  • 发布于 2021-06-27 15:51
  • 阅读 ( 653 )
wos7943
wos7943

0 篇文章

相关推荐