有时在运行 Bash 脚本时,我们还会将某些参数传递给这些脚本,这些参数可能会在脚本内的不同计算中使用。 此外,这些参数的数量也可能在 Bash 脚本的整体结果中发挥非常重要的作用,具体取决于其逻辑。 因此,本文将教您使用不同的方法来方便地检查 Bash 脚本中的参数个数。
找出 Bash 中的参数数量
有不同的方法可用于检查在执行 Bash 脚本时传递给它的参数数量。 您可以通过以下示例了解这些方法:
示例 1:仅打印参数数量
在这个 example,我们打印提供给 Bash 脚本的参数总数。 为此,我们编写了如下图所示的简单 Bash 脚本:
在此脚本中,我们使用了 Bash 的“$#”特殊变量,它保存提供给 Bash 脚本的参数总数。 我们只是将这个变量与“echo”命令一起使用,以在终端上打印它的值。
为了测试这个脚本,我们使用了以下命令:
$ bash args.bash 1 2 3 4 5
我们在运行时向这个 Bash 脚本传递了五个参数。 因此,传递给此 Bash 脚本的参数数量为“5”,如下图所示:
示例 2:打印参数的值及其编号
现在,我们还在终端上打印参数的值及其总数。 为此,我们使用以下 Bash 脚本:
在这个 example,我们想在执行 Bash 脚本时将两个参数传递给它。 因此,我们打印了“$1”和“$2”特殊变量的值。 但是,如果您打算将两个以上的参数传递给 Bash 脚本,您也可以使用“$3”、“$4”等特殊变量。 然后,我们简单地使用“$#”特殊变量在终端上打印它们的总数。
在执行此脚本时,我们有意向其传递了两个参数,如下图所示。 如果您将两个以上的参数传递给同一个脚本,则只有前两个参数的值会被打印出来,因为我们在脚本中对其进行了硬编码。
$ bash args.bash 1 2
下图显示了提供给我们的 Bash 脚本的参数总数及其确切值:
示例 3:使用“$@”特殊变量
在这个 example,我们不会限制可以提供给 Bash 脚本的参数数量。 您可以考虑以下 Bash 脚本来清楚地理解这一点:
在此脚本中,我们使用“$@”特殊变量在终端上打印所提供参数的值。 “$@”特殊变量充当缓冲区,用于保存提供给 Bash 脚本的所有参数的值。 因此,我们可以向此 Bash 脚本传递任意数量的参数。 然后,我们使用“$#”特殊变量在终端上打印参数总数。
要执行此脚本,我们使用了以下命令。 这一次,我们向 Bash 脚本传递了三个参数:
$ bash args.bash 1 2 3
参数总数及其值如下图所示:
示例 4:使用“$*”特殊变量
这 example 与我们的第三个非常相似 example. 唯一的区别是这次我们不使用“$@”特殊变量,而是使用“$*”特殊变量,其用途完全相同。 为此修改的 Bash 脚本 example 如下图所示:
在此脚本中,我们将“$@”替换为“$*”。 脚本的其余部分与我们的第三个完全相同 example.
我们使用以下命令来执行此脚本:
$ bash args.bash 1 2 3
参数总数及其值如下图所示:
结论
通过本文,我们希望帮助您了解检查传递给 Bash 脚本的参数总数的方法。 在这方面,我们通过在不同的示例中使用它们与您分享了四种不同的方法。 您可以根据您希望获得的结果的格式选择遵循这些方法中的任何一种。