Bash是一种非常通用的脚本语言,最常用于基于Linux的系统。使用这种语言,你可以轻松地将你的日常工作自动化,也可以简化重复性工作。这种语言融合了不同的实体,如特殊变量、函数、内置命令等。这种语言的每个特殊变量都有一个特定的目的。我们将在本文中讨论的特殊变量是"$_",它是用来打印前一个命令的最后一个参数的。如果不看相关的例子,要理解这个特殊变量的功能是有点复杂的。因此,我们在设计本教程时,首先会向你解释这个命令的使用情况,然后是一个相关的例子。让我们一起看看这篇文章为我们带来了什么。
Ubuntu 20.04中Bash中$_的用例。
在Ubuntu 20.04的Bash中使用特殊变量"$_"有不同的使用情况;然而,下面我们将讨论这个特殊变量的三个最常见的使用情况。
例1:在Ubuntu 20.04终端中使用"$_"
这个特殊变量可以在Ubuntu 20.04的终端中使用。在终端中使用它的目的是为了打印在终端中执行的前一个命令的最后一个参数。考虑这样一种情况:你在一段时间前执行了一条命令,之后没有在终端中执行任何东西,但你仍然想知道你上次做了什么。在这种情况下,你可以使用终端中的"$_"特殊变量来了解你在终端中执行的前一条命令的最后一个参数。为了更好地理解这一切,你可以看一下下面的例子。
例子:
在这个例子中,我们打算在Ubuntu 20.04终端中打印之前执行的命令的最后一个参数。为此,我们在终端中执行了下面的命令。
$ ls *.sh;echo $_

上面提到的命令基本上是两个不同命令的整合。第一个命令,即ls *.sh,列出了当前目录下的所有Bash文件。另一方面,第二条命令,即echo _"命令时被再次打印。这个命令的输出可以从下面的图片中看到。

在这个输出中,你可以清楚地看到由于执行 "ls "命令而打印的最后一个参数是Bash文件,其名称为 "Suppress.sh"。此外,你还可以看到,由于使用了"$_"变量,同样的文件名再次被打印出来,因为这个文件实际上是先前在终端执行的命令,即 "ls "命令的最后一个参数。
例2:使用"$_"来显示Bash脚本的路径
在Ubuntu 20.04中,"_"特殊变量,它就可以做到这一点。通过这样做,你将能够非常容易地获得Bash脚本的路径。为了演示Bash中这个特殊变量的功能,我们设计了下面这个例子。只要看一遍这个例子, 你就能马上知道"$_"这个特殊变量是如何被用来显示Bash脚本的路径的.
例子:
在这个例子中,我们想使用"$_"特殊变量来显示Ubuntu 20.04终端上的Bash脚本的路径。为此,我们创建了下面这个Bash脚本样本,并将其命名为 "Sample.sh"。

在这个Bash脚本中,在写完Shebang之后,我们简单地使用了 "echo _"特殊变量的值,也就是我们Bash脚本文件的路径。你也可以通过在 "echo $_"命令后面添加更多你选择的命令来进一步扩展这个脚本。
要执行这个Bash脚本,你必须在终端运行下面的命令。
$ bash Sample.sh

当你执行这个Bash脚本时,由于在你的Bash脚本中使用了"$_"这个特殊变量,其路径将被打印在你的终端上,如下图所示。

我们在案例中创建的Bash文件的路径是/bin/bash,你可以从上图所示的输出中看到。
例3:使用"$_"来显示Bash脚本中前一个命令的最后一个参数。
这个用例与我们文章中的第一个用例有点类似。然而,在第一个用例中,我们只是在Ubuntu 20.04终端中使用了两个命令的整合,而在这个用例中,我们将创建一个Bash脚本,或多或少起到相同的作用,也就是说,在这个Bash脚本中,我们将在一些命令后使用"$_"这个特殊变量,使其在终端上打印前一个命令的最后一个参数。为了更好地掌握这个概念,你需要看一下我们在下面创建的例子。
例子
在这个例子中,我们创建了一个名为 "Sample.sh "的Bash脚本,在说明了Shebang之后,我们声明了两个变量 "a "和 "b"。我们还为这两个变量分别分配了 "10 "和 "12 "的值。之后,我们使用 "echo "命令来打印这两个变量的值。最后,我们用另一个 "echo "命令来打印"$_"特殊变量的值,在这种情况下,它将是之前执行的 "echo "命令的最后一个参数,也就是 "b "变量的值。

在创建了这个Bash脚本之后,你可以在以下命令的帮助下运行它。
$ bash Sample.sh

当运行这个样本Bash脚本时,你将在终端上看到变量 "a "和 "b "的值。除此之外,由于"$_"这个特殊变量的存在,"b "变量的值也会被再次打印出来,如下图所示。

总结
本教程阐明了Ubuntu 20.04中Bash的"_"特殊变量,或者你甚至可以创建Bash脚本来使用这个特殊变量。此外,你甚至可以增加本文中与你分享的Bash脚本的复杂性。这篇文章的目的是让你了解Ubuntu 20.04系统中Bash中$_"特殊变量的用法。