迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

检查 Bash 中是否存在输入参数

作者:迹忆客 最近更新:2023/06/10 浏览次数:

当我们创建 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

现在,我们可以在我们的脚本中使用 $# 和一个条件语句来检查 $# 是否等于零(意味着没有输入参数)以在为真时退出。 如果 $# 大于 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

现在,让我们用一些参数来运行它:

$ ./script.sh jiyik stack blog

代码的输出:

The number of input arguments are
3
The first one is
jiyik

上一篇:在 Bash 中获取可选的输入参数

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Bash 中获取可选的输入参数

发布时间:2023/06/10 浏览次数:135 分类:操作系统

本文将演示如何为函数创建可选的输入参数。 我们还将查看一些示例和解释,以使该主题更容易理解。在 Bash 中获取可选的输入参数 在下面的示例中,我们将打印默认值。 我们声明了 4 个包含

在 Bash 中 fork

发布时间:2023/06/10 浏览次数:85 分类:操作系统

本文介绍了用于fork新的异步子进程的 C/C++ 分叉系统调用的 Bash 等效项(即子 shell)的介绍性教程。在 Bash 中fork C/C++中的系统调用是创建一个新的进程,即调用进程的子进程。

在 Bash 中继续下一行

发布时间:2023/06/10 浏览次数:161 分类:操作系统

这篇简短的文章是关于在 Linux 或 UNIX 中执行 Bash 脚本时对规则的解释。 在进入正题之前,让我们简单介绍一下 Bash 编程。在 Bash 中继续下一行

Bash 中 Syntax Error Near Unexpected Token 错误

发布时间:2023/06/09 浏览次数:67 分类:操作系统

本文演示如何识别和更正由于 Bash 脚本中的不可见字符而导致的意外令牌语法错误。Bash 中 Syntax Error Near Unexpected Token 错误 有时,语法上看起来完美无缺的 Bash 脚本不起作用。 你会得到一个模

修复 Bash 中未找到 Mkvirtualenv 命令的错误

发布时间:2023/06/09 浏览次数:102 分类:操作系统

本文演示了如何修复 Bash 中的 mkvirtualenv: command not found 错误。修复 bash 中的 mkvirtualenv: command not found 错误 如果你试图在 Python 中创建一个虚拟环境并看到类似这样的东西,

解决在 Bash(或 Cygwin)上找不到 R 命令

发布时间:2023/06/09 浏览次数:84 分类:操作系统

本文将帮助您了解错误消息以及如何解决或防止此类错误再次发生。解决bash: '\r': command not found With Notepad++ 不同的操作系统行为不同,Windows 通常是不同的。 如前所述,\r 字符的存在是导致此错

解决 Nodemon Command Not Found

发布时间:2023/06/09 浏览次数:122 分类:操作系统

本文将讨论如何解决和处理 nodemon command not found 错误。使用npm解决Nodemon Command Not Found 通过 npm,我们可以安装有用的功能库、包和工具来改进我们在 NodeJS 平台上的开发。

Bash 中的错误处理

发布时间:2023/06/09 浏览次数:134 分类:操作系统

本文介绍了 bash 中的错误处理。 请记住,了解退出代码、选项(如 errexit 和 trap)使我们能够构建健壮的脚本并更有效地管理 bash 问题。Bash 中的退出代码 基于退出代码处理错误是检测命令失败

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便