📜  Linux 中的引用机制

📅  最后修改于: 2022-05-13 01:56:18.437000             🧑  作者: Mango

Linux 中的引用机制

在 Linux Shell 中,许多特殊字符都有自己的特殊含义。有时它们用于执行操作,而有时它们仅用作字符,因此引用机制执行此任务,它使我们能够以任何我们想要的方式使用它们。

元字符:这些是在将其传递给命令之前首先由 shell 解释的特殊字符。它们也称为外壳通配符。

  • $ Variable 替换或扩展Variable 的值。
  • >用于输出重定向。
  • >>用于附加的输出重定向。
  • <输入重定向。
  • <<用于输入重定向,也称为此处文档。
  • *匹配任意数量的字符,零个或多个字符的替换通配符
  • ?匹配一个字符,替换通配符为 1 个字符
  • []匹配范围字符,括号内任意字符替换通配符
  • `cmd`将 cmd 替换为要执行的命令并将执行该命令,替换通配符以执行命令
  • $(cmd)将 cmd 替换为要执行的命令并将执行该命令,替换通配符以执行命令
  • |管道是一种重定向,用于将一个命令/程序/进程的输出发送到另一个命令/程序/进程以进行进一步处理。
  • ;命令分隔符用于用一条语句执行 2 个或多个命令。
  • ||或有条件地执行命令。
  • && AND 命令的条件执行。
  • ()将命令分组到一个输出流中。
  • &在后台执行命令并显示分配的 Pid。
  • #评论一些东西。
  • $扩展一个变量的值。
  • \用于转义字符的解释或防止这种情况发生。

转义字符或反斜杠

Backslash('\')是 bash 转义字符。任何紧跟在反斜杠后面的字符都失去了它的特殊含义,而任何跟在反斜杠后面的字母都获得了它的特殊含义。在终端中输入以下命令。

echo "Quotation"
echo \"Quotation\"

从示例中可以看出,没有反斜杠和带反斜杠的 double 不能打印,因为它们失去了特殊含义,所以它们被打印了。

Linux 中的转义字符或反斜杠

反斜杠转义字符

单引号

单引号(”)用于保留引号内每个字符的字面量值。单引号之间不能出现单引号,即使前面有反斜杠。单引号内的所有特殊字符都失去了它们的特殊含义。
有些字符串有很多特殊字符,因此很难在每个特殊字符之前使用反斜杠。因此,如果我们将相同的字符串放在单引号内,大多数特殊字符将失去其特殊含义。在终端中输入以下命令。

echo \\\
echo ''

从示例中可以看出,我们必须在第一条语句中使用大量反斜杠,这使得它变得复杂。虽然使用单引号输出相同但不使用反斜杠

Linux 中的单引号

双引号

双引号(“”)保留引号内所有字符的字面量,'$'、'`'、'\' 以及启用历史扩展时的'!' 除外。反斜杠仅在后跟以下字符之一时才保留其特殊含义:'$'、'`'、'"'、'\' 或换行符。在终端中输入以下命令。

name=geeksforgeeks
echo '$name'
echo "$name"

您可以看到,在单引号的情况下,变量的值没有被打印出来,而在双引号的情况下,变量的值被打印出来。

Linux 中的双引号

后引号

反引号(“)用于执行命令。它们之间包含的任何内容都将被视为命令并被执行。打开终端并执行以下命令。

hostname=`hostname`
echo $hostname

您可以从示例中看到 hostname 命令被执行并且名称被存储在变量中。

后引号