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

这篇具有很好参考价值的文章主要介绍了检查 Bash 中是否存在输入参数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


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

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

$ ./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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何在十亿级别用户中检查用户名是否存在?

    不知道大家有没有留意过,在使用一些app注册的时候,提示你用户名已经被占用了,需要更换一个,这是如何实现的呢?你可能想这不是很简单吗,去数据库里查一下有没有不就行了吗,那么假如用户数量很多,达到数亿级别呢,这又该如何是好? 数据库方案 第一种方案就

    2024年02月08日
    浏览(49)
  • 【教3妹学编程-算法题】检查按位或是否存在尾随零

    3妹 :呜呜,烦死了, 脸上长了一个痘 2哥 : 不要在意这些细节嘛,不用管它,过两天自然不就好了。 3妹 :切,你不懂,影响这两天的心情哇。 2哥 : 我看你是不急着找工作了啊, 工作那么辛苦,哪还有时间想这些啊。 3妹 :说到找工作,我又要去刷题了。 2哥 :我给你出

    2024年01月20日
    浏览(46)
  • R语言【cli】——ansi_nzchar():检查是否存在ANSI语句

    Package  cli  version 3.6.0 参数【x】 :Charcater向量。其他对象使用base::as.character()进行转换。 参数【...】 :传入base::nzchar()。

    2024年01月21日
    浏览(47)
  • 检查值是否存在于 Java 中的数组中的4种详细方法介绍

    在 Java 中,有许多方法可以检查此数组中是否存在特定元素。 使用线性搜索方法 使用二进制搜索方法 使用 List.contains() 方法 使用 Stream.anyMatch() 方法 时间复杂度:O(N) 辅助空间:O(1) 通过将搜索间隔重复分成两半来搜索排序数组。从覆盖整个数组的区间开始。如果搜索

    2024年02月14日
    浏览(50)
  • 检查Javascript对象数组中是否存在对象值,如果没有向数组添加新对象

    需求: 如果我有以下对象数组: 有没有办法循环遍历数组,以检查特定的用户名值是否已经存在,如果它什么都不做,但是如果它没有用所述用户名(和新的ID)将新对象添加到数组? 解决 方法 一: 我假设id s在这里是独一无二的。 some是检查数组中事物存在的一个很好的函数

    2024年02月11日
    浏览(42)
  • 【LeetCode: 2369. 检查数组是否存在有效划分 | 暴力递归=>记忆化搜索=>动态规划 | 线性dp】

    🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文

    2023年04月19日
    浏览(56)
  • 【100个 Unity实用技能】☀️ | C# 检查字典中是否存在某个Key的几种方法

    老规矩,先介绍一下 Unity 的科普小知识: Unity 是 实时3D互动内容创作和运营平台 。 包括 游戏开发 、 美术 、 建筑 、 汽车设计 、 影视 在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和

    2023年04月08日
    浏览(45)
  • R语言【cli】——ansi_has_any():检查字符串里是否存在ANSI格式

    Package  cli  version 3.6.0 参数【string】 :要检查的字符串。它也可以是字符向量 参数【sgr】 :是否查找SGR(样式化)控制序列。 参数【csi】 :是否查找非sgr控制序列。 参数【link】 :是否查找ANSI超链接。 逻辑向量,对于具有某种ANSI样式的字符串为TRUE。

    2024年01月20日
    浏览(51)
  • [ 云计算 | AWS 实践 ] 使用 Java 检查指定的密钥是否存在于给定的 Amazon S3 存储桶中

    本文收录于【#云计算入门与实践 - AWS】专栏中,收录 AWS 入门与实践相关博文。 本文同步于个人公众号:【 云计算洞察 】 更多关于云计算技术内容敬请关注:CSDN【#云计算入门与实践 - AWS】专栏。 本系列已更新博文: [ 云计算 | AWS 实践 ] Java 应用中使用 Amazon S3 进行存储桶

    2024年02月05日
    浏览(61)
  • 华为OD机试真题B卷 Java 实现【检查是否存在满足条件的数字组合】,附详细解题思路

    给定一个正整数数组,检查数组中是否存在满足规则的数字组合 规则:A = B + 2C 第一行输出数组的元素个数。 接下来一行输出所有数组元素,用空格隔开。 如果存在满足要求的数,在同一行里依次输出规则里A/B/C的取值,用空格隔开。 如果不存在,输出0。 读取输入的数组元

    2024年02月07日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包