举例阐述Ubuntu 20.04系统中Bash脚本中$@的功能

824 阅读3分钟

我们中的大多数人都使用Bash脚本来进行维护和某些其他任务。然而,我们并不总是熟知各种Bash选项。每当用户是Bash shell和Linux的新手时,用户往往会寻求一个预先写好的Bash脚本。这是由于一些用户发现独特的Bash字符如@,@, _, 和1令人困惑。从1令人困惑。从@这个Bash参数开始,它被用来延伸到位置参数。只要在双引号内发生扩展,每个参数都会扩展成类似于一个独立的单词。如果使用@,独立的参数应该用引号括起来,并用空格来区分。请记住,@,独立的参数应该用引号括起来,并用空格来区分。请记住,@应该被加引号才能正常工作。尽管如此,它的行为与作为独立字符串的参数类似。

我们将通过几个例子来阐述Ubuntu 20.04系统中Bash脚本中$@的功能。

例子1:

一开始,我们需要以sudo用户的身份从Ubuntu 20.04发行版中登录。登录成功后,我们将打开命令行,开始工作。要打开它,请使用 "Ctrl+Alt+T"。作为替代方法,我们也可以使用活动区,从搜索栏中找到控制台终端。正确打开后,我们将通过创建一个新的Bash文件开始在Bash中对$@进行工作。所以,我们一直在利用 "touch"查询,文件的名字是 "one.sh"。注意,Bash文件包含一个".sh"扩展名。在shell中写完以下指令后点击 "Enter"来运行它。你会在Ubuntu 20.04的主目录中找到新生成的Bash文件。

$ touch one.sh

现在,Bash文件已经生成;我们必须在编辑器中打开它来添加和编辑其中的Bash脚本。因此,我们将在终端外壳上使用 "GNU Nano"编辑器来打开它。因此,我们在shell中使用了 "nano"关键字指令,并将文件名定为 "one.sh",如下图所示。

$ nano one.sh

你需要在你的Bash文件 "one.sh"中编写以下三行脚本。我们首先在文件中添加了Bash扩展名。之后,我们在这个脚本中使用了三个echo语句来使用三个特殊字符并输出各自的结果。请注意,"#**"字符被用来输出将由用户在shell中添加的输入或参数字符串的总数。**@"字符用于在终端上显示这三个值或参数,而"$?"字符有一个特殊的任务,如果最后一条命令变得成功,则返回0。在Bash中,"Ctrl+S"快捷键经常被用来保存Bash文件,同时在某种 "nano"编辑器中打开。所以,保存你的one.sh文件,并使用 "Ctrl+X"将其返回到终端。

现在,新创建的Bash脚本已经在我们的系统中得到了保存和保护;现在是使其可执行的时候了。你必须注意,在执行文件的过程中,像$@这样的字符会在终端中获取参数值。因此,在你的Ubuntu shell中使用 "bash"关键字查询,文件名为 "one.sh",并按所述分配参数值。你可以从下面的快照中看到,我们为Bash脚本one.sh提供了3个字符串类型的参数值,例如:Aqsa、Rimsha和Awan。输出的结果是显示3行输出。第一行显示的是加入的总参数数。第二行显示的是用户传递的参数值。最后,第三行显示返回值为0,因为第二行的命令已经成功了。

$ bash one.sh Arg1 Arg2 Arg3

例子2:

为了进一步理解$@字符和功能的概念,我们需要在文章中再举一个例子。因此,我们将用GNU nano编辑器打开同一个文件,"one.sh"。为此,我们尝试了以下指令,并点击键盘上的 "Enter "按钮继续。

$ nano one.sh

由于该文件现在已经打开,我们将在其中添加一个新的、更新的Bash脚本。这一次,我们一直在使用一个简单的Bash脚本来阐述@字符的功能。所以,你必须用下面图片中的Bash脚本来更新你的Bash脚本。我们使用for循环,每次取一个项目作为用户在终端上传递的@字符的功能。所以,你必须用下面图片中的Bash脚本来更新你的Bash脚本。我们使用for循环,每次取一个项目作为用户在终端上传递的@的参数。每个项目都通过echo语句显示在终端上。在保存文件之后,我们返回到控制台执行Bash脚本。

在Bash指令中,我们将5个字符串类型的参数与文件名 "one.sh"一起传递。在按下 "Enter"键后,终端已经分别显示了每个参数。

$ bash one.sh Arg1 Arg2 Arg3 Arg4 Arg5

例子3:

让我们仔细看看上面阐述的另一个同样的@的例子。在这个例子中,我们将使用@的例子。在这个例子中,我们将使用@和\*来比较和区分这两个特殊字符的作用。这样,我们就能正确理解\*来比较和区分这两个特殊字符的作用。这样,我们就能正确理解@字符的作用。要打开已经创建的文件 "one.sh",请在Ubuntu 20.04的控制台中编写并运行以下指令。

$ nano one.sh

我们已经更新了上面的示例代码。我们所做的只是在for循环中为"$*"添加相同的代码。我们保存了Bash代码并退出了该文件。

在执行过程中,由于\*字符的使用,它显示第一行是整个参数。所有其他的行都是\*字符的使用,它显示第一行是整个参数。所有其他的行都是@字符的输出。

$ bash one.sh Arg1 Arg2 Arg3 Arg4 Arg5

例子4:

在我们的最后一个例子中, 我们将通过函数和循环来解释$@字符的功能.因此,为了更新Bash脚本,我们用shell中的 "nano"编辑命令再次打开了 "one.sh"文件,如下所示。

$ nano one.sh

这一次,我们一直在使用方法foo()来打印各自方法中传递的特殊字符的参数,直到它什么都没有得到。方法 "Dollar1"用于@特殊字符,"Dollar2"用于@特殊字符,"**Dollar2**"用于*字符的运作。这两个方法都包含调用foo()方法,分别用特殊字符@@和*来传递参数。Dollar1和Dollar2方法是在echo语句后调用的,同时都包含相同的三个参数作为其参数值。

代码的执行分别显示了Dollar1和Dollar2方法的输出。使用@"显示的是@"显示的是@的输出,而 "使用\*"则分别显示\*"则分别显示*字符的输出。

$ bash one.sh

总结

本指南介绍了如何在Bash脚本中使用@,声明它以及它是如何工作的。我们还描述了@,声明它以及它是如何工作的。我们还描述了@和其他与美元相关的字符之间的区别,以使其更容易理解。 我们希望你在执行时也能享受到它。