了解$0变量在Bash脚本中的功能

228 阅读3分钟

在这篇文章中,我们想把关于Bash中的特殊变量的讨论再延伸一些。在这方面,今天我们想重点讨论在Ubuntu 20.04的Bash脚本中使用$0这个特殊变量。让我们弄清楚这个特殊变量在Bash脚本中的功能。此外,作为奖励,我们还将分享这个特殊变量在终端中的用法。

$0在Ubuntu 20.04的Bash脚本中的用法

0属于Bash中的另一类特殊变量,也被称为位置参数。这些参数的范围从0美元到9美元,正如它们的名字所暗示的那样,这些变量在Bash脚本中根据它们的位置对应着不同的值。仅就0属于Bash中的另一类特殊变量,也被称为位置参数。这些参数的范围从0美元到9美元,正如它们的名字所暗示的那样,这些变量在Bash脚本中根据它们的位置对应着不同的值。仅就0这个特殊变量而言, 这个特殊变量有两个不同的作用,即它可以打印Bash脚本的名称,也可以指代你当前的shell的名称。

现在你可能想知道这个变量怎么能同时对应两个不同的值。那么,这个问题的答案非常简单。这个变量并不同时对应两个值;相反,根据这个变量的使用位置,它可以指代这两个值中的任何一个。如果$0这个特殊变量是在Bash脚本中使用,它可以用来打印其名称,如果它直接在终端中使用,它可以用来显示当前shell的名称。

然而,在本文中,由于我们主要关注的是在Ubuntu 20.04中的Bash脚本中使用$0这个特殊变量,因此,你必须通过以下部分来查看一些相关的例子。

在Ubuntu 20.04的Bash脚本中使用$0的例子

在下面的例子中,我们将在Bash脚本中的三个不同地方使用$0这个特殊变量。我们的目标是看它的输出是否因改变位置而有所不同。要想知道这一点,你必须对下面讨论的三个例子进行探讨。

例1:在Ubuntu 20.04中使用$0作为Bash脚本的开头

在第一个例子中,我们创建了一个非常简单的Bash脚本,可以在下面的图片中看到。

在这个Bash脚本中,我们只是写了一个 "echo "命令,将0这个特殊变量的值打印在终端的Shebang下面(这是识别Bash脚本的必须条件)。由于我们在Bash脚本中使用了0这个特殊变量的值打印在终端的Shebang下面(这是识别Bash脚本的必须条件)。由于我们在Bash脚本中使用了0这个特殊变量, 它肯定是指我们Bash脚本的名字.为了验证这一点,我们将用以下命令执行我们的Bash脚本。

$ bash Temp.sh

这里,Temp.sh是我们创建的Bash脚本文件的名称。你必须用你的特定Bash文件的名称来替换它。

当这个特定的Bash脚本被执行时,你将能够看到你的Bash脚本文件的名字被打印在Ubuntu 20.04终端上,如下图所示。

例2:在Ubuntu 20.04中的Bash脚本中间使用$0

在这个例子中,我们对同一个Bash脚本进行了扩展,比我们在第一个例子中使用的更进一步。这个修改后的Bash脚本的目的是在脚本中间的某个地方使用$0这个特殊变量,以弄清其功能是否与第一个例子不同。这个修改过的Bash脚本可以从下面的图片中看到。

在这个Bash脚本中,我们声明了三个变量 "a、b和c",并分别为它们赋值 "10、20和30"。之后,我们使用 "echo "命令将变量 "a "和 "b "的值打印在终端。然后,另一个 "echo "命令将试图打印$0这个特殊变量的值。最后,还有一个 "echo "命令将在终端上打印变量 "c "的值。

这个Bash脚本文件也可以像我们在第一个例子中那样类似地执行。在执行时,这个经过修改的Bash脚本所呈现的输出结果如下图所示。

从这个输出中,你可以看到这个Bash脚本首先打印了变量 "a "和 "b "的值,然后打印了0这个特殊变量的值,也就是Bash脚本的名字和变量"c"的值。这意味着即使在Bash脚本的中间使用了0这个特殊变量的值,也就是Bash脚本的名字和变量 "c "的值。这意味着即使在Bash脚本的中间使用了0特殊符号, 它仍然包含了与第一个例子中相同的值.

例3:在Ubuntu 20.04中的Bash脚本结尾使用$0。

这个例子是第一个Bash脚本的又一个修改版本。在这个Bash脚本中,我们打算在Bash脚本的结尾使用$0这个特殊变量,看看它的工作原理是否与第一个例子不同。这个修改过的Bash脚本文件显示在下面的图片中。

在这个Bash脚本中,我们使用了与第二个例子中相同的三个变量。然后我们使用了一个 "echo "命令来打印所有这些变量的值,接着是另一个 "echo "命令,它将试图打印$0这个特殊变量的值,也就是我们的Bash脚本文件的名字。

这个Bash脚本文件也可以像我们在第一个例子中那样被执行。执行后,这个经过修改的Bash脚本所呈现的输出结果如下图所示。

这个输出显示,这个Bash脚本首先打印了三个变量的值,然后是0这个特殊变量的值,也就是Bash脚本的名字。这意味着即使我们在Bash脚本的结尾使用了0这个特殊变量的值,也就是Bash脚本的名字。这意味着即使我们在Bash脚本的结尾使用了0这个特殊变量,它仍然包含了Bash脚本文件的名称。

在Ubuntu 20.04的终端中使用$0。

这只是讨论中的特殊变量的一个额外用法。在终端中可以使用$0这个特殊变量来打印你当前的shell名称,只需执行以下语句即可。

$ echo $0

由于我们当前的shell名称是Bash,所以从上述语句的输出中也可以看出这一点。

结论

从这篇文章中,我们可以得出结论,特殊变量0可以有两种不同的用途,即用于打印Bash脚本的名称和打印当前shell的名称。此外,我们还发现,无论0可以有两种不同的用途,即用于打印Bash脚本的名称和打印当前shell的名称。此外, 我们还发现, 无论0这个特殊变量在Bash脚本中的位置如何, 它的值都是该Bash脚本的名字.