当我们创建 Bash 脚本时,我们可能希望在我们的脚本中使用参数来成功运行。 因此,我们需要创建一个脚本来检查用户在脚本中使用的输入参数的数量。
当用户在使用脚本或命令时没有传递所需参数时,所有这些都可以防止意外行为,然后我们可以传递一条错误消息,告诉用户他们没有使用所需数量的参数。
本文将向您展示如何检查输入参数是否存在或现有参数的数量。
在 Bash 中使用 $# 检查输入参数是否存在
在 Bash 中,一个特殊变量 $# 保存输入参数。 使用 $#,您可以检查有多少输入参数已传递给 Bash 脚本。
一个简单的 Bash 脚本将向您显示此 $# 变量在不带参数传递或传递两个参数时的含义。
#!/bin/bash
echo "The number of input arguments passed to this script: "
echo $#
让我们在没有输入参数的情况下运行脚本:
$ ./script.sh
终端输出如下图:
The number of input arguments passed to this script:
0
现在,让我们将两个参数传递给同一个脚本:
$ ./script.sh one two
脚本的输出如下:
The number of input arguments passed to this script:
2
现在,我们可以在我们的脚本中使用 $# 和一个条件语句来检查 KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲ 是否等于零(意味着没有输入参…#` 大于 0,则条件变为假,并执行条件语句的 else 部分。
#!/bin/bash
if [ $# -eq 0 ]
then
echo "No input arguments exist"
exit 1
else
echo "The number of input arguments passed:"
echo $#
fi
让我们使用以下不带参数的命令运行脚本:
$ ./script.sh
代码的输出:
No input arguments exist
现在,让我们运行一个带参数的不同脚本命令:
$ ./script.sh one two
代码的输出是不同的,因为条件检查等于 false:
The number of input arguments passed:
2
除此之外,我们可以使用另一个使用 $[number]
的特殊变量来访问输入参数。 这些是我们可以在 Bash 中使用的位置参数。
如果我们知道我们将获得三个变量或已经确定,我们可以使用下面的代码访问这三个变量。
#!/bin/bash
echo "The input arguments are:"
echo $1 $2 $3
当传递三个参数时,代码的输出将如下所示:
The input arguments are:
one two three
使用 $1 检查 Bash 中是否存在输入参数
记住我们在上一节中讨论的位置参数。 我们可以使用第一个 $1 来检查是否传递了任何输入参数,因为如果没有输入参数,则位置参数 $1
中不会有任何值。
因此,我们可以使用 if-else 语句,其中条件表达式检查位置参数 $1 中是否存在值。 但是,如果有一个值,它会使用位置参数回显输入参数的数量和第一个参数。
#!/bin/bash
if [ -z "$1" ]
then
echo "Please, pass an argument"
exit 1
else
echo "The number of input arguments are"
echo $#
echo "The first one is"
echo $1
fi
让我们运行不带参数的代码:
$ ./script.sh
脚本的输出:
Please, pass an argument
现在,让我们用一些参数来运行它:文章来源:https://www.toymoban.com/news/detail-482890.html
$ ./script.sh jiyik stack blog
代码的输出:文章来源地址https://www.toymoban.com/news/detail-482890.html
The number of input arguments are
3
The first one is
jiyik
到了这里,关于检查 Bash 中是否存在输入参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!