Shell 脚本参数[重复]

2024-03-01

解析 shell 脚本命令中的参数然后验证它的最佳方法是什么?

例如bash someScript.sh -p <some_path> -o <some_other_param> -i (User forget to provide value).

如何解析所有这些参数,并且当用户忘记输入某些参数或该参数的值时显示一些错误消息并终止脚本的执行?


Use getopt /questions/tagged/getopt or getopts /questions/tagged/getopts.

该网站上有很多示例,但这里还有一个:

#!/usr/bin/env bash

p_set=false
o_set=false
i_set=false
while getopts p:o:i: OPT; do
    case "${OPT}" in
        p)
            p_set=true
            some_path=${OPTARG}
            ;;
        o)
            o_set=true
            some_other_param=${OPTARG}
            ;;
        i)
            i_set=true
            # Process ${OPTARG} or report error if it's not provided
            ;;
    esac
done

if ! $i_set ; then
    echo "-i must be provided"
fi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Shell 脚本参数[重复] 的相关文章

  • 从 bash 从新的 Google Chrome 浏览器会话获取“用户代理”字符串

    我想要得到用户代理 HTTP 请求标头 https developer mozilla org en US docs Web HTTP Headers User Agent来自 bash 的新 Google Chrome 浏览器会话 刚刚打
  • 仅打印“docker-container ls -la”输出中的“Names”列

    发出时docker container ls la命令 输出如下所示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67f0c2b1769 busybox tail f dev
  • .profile 无法从 Mac 终端运行

    我有一个 profile 文件 我正在终端中读取并使用别名 但在某些时候 别名由于没有明确的原因而停止工作 其他命令仍在工作 为了快速修复 我删除了 rm 并在用户目录中重新创建了 profile 文件 我可以看到 至少在该目录中没有 ba
  • 使用 posix shell 测试字符串中的正则表达式

    如何测试字符串是否与特定字符串匹配正则表达式与基本 无 bash 或任何其他 posix shell 脚本 在 if 语句中 您可以使用expr在 POSIX shell 中计算正则表达式的命令 s Abc expr s alpha 3 e
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • 如何在 shell 脚本中并行运行多个实例以提高时间效率[重复]

    这个问题在这里已经有答案了 我正在使用 shell 脚本 它读取 16000 行的输入文件 运行该脚本需要8个多小时 我需要减少它 所以我将其划分为 8 个实例并读取数据 其中我使用 for 循环迭代 8 个文件 并在其中使用 while
  • 如何执行“sudo nvm”?

    在我的 Mac 上 我想将一些需要 su 权限的包迁移到另一个节点版本 我使用 homebrew 安装 nvm 现在我需要执行 sudo nvm 或 reinstall packages将失败 me MacBook sudo nvm sud
  • C程序调用shell脚本

    我有一个小型 C 程序 调用 shell 脚本 myScript sh 我得到的 ret 值为 256 请帮助我了解系统调用出了什么问题 int main int ret ret system myScript sh ret gt gt r
  • 如何在数组中存储包含双引号的命令参数?

    我有一个 Bash 脚本 它生成 存储和修改数组中的值 这些值稍后用作命令的参数 对于 MCVE 我想到了任意命令bash c echo 0 0 echo 1 1 这解释了我的问题 我将用两个参数调用我的命令 option1 without
  • 如何判断 Bash 中是否存在文件?

    这会检查文件是否存在 bin bash FILE 1 if f FILE then echo File FILE exists else echo File FILE does not exist fi 我如何只检查文件是否存在not ex
  • jq:将对象数组转换为对象

    我收到了来自curl的回复 格式如下 list value 1 id 12 value 15 id 13 value 4 id 14 给定 id 之间的映射 如下所示 12 newId1 13 newId2 14 newId3 我想做这个
  • OSX bash 最小化窗口

    在 Mac 中并使用 bash shell 我想执行一个包含单个命令 启动 Jupyter Lab 的文件并立即最小化终端窗口 有没有办法在不安装第三方软件的情况下做到这一点 是的 只需使用osascript https ss64 com
  • Git difftool 未启动外部 DiffMerge 程序

    我一直遵循 戴夫的博客条目 http www davesquared net 2009 05 setting up git difftool on windows html 链接在此answer https stackoverflow co
  • sed 错误“未终止的 's' 命令”故障排除

    我正在构建一个script https stackoverflow com questions 4036832 replacing a specific term in an xml file其中 它将用文件夹路径替换 XML 文件中的模式
  • Linux:在文件保存时触发 Shell 命令

    我想在修改文件时自动触发 shell 命令 我认为这可以通过注册 inotify 挂钩并调用来在代码中完成system 但是是否有更高级别的 bash 命令可以完成此任务 尝试 inotify 工具 我在复制链接时遇到问题 抱歉 但 Git
  • 从 shell 命令调用 SOAP 请求

    我使用curl 向Web 服务发送SOAP 请求 并使用shell 脚本获取响应 请在下面找到我正在使用的命令 curl H Content Type text xml charset utf 8 H SOAPAction d sample
  • 如何以管理员身份在 rake 任务中运行 shell 命令?

    我有一个简短的 cmd 文件 我想将其作为部署过程的一部分运行 不幸的是 cmd 文件需要管理员权限 是否可以从 rake 中获得管理员权限 或者我是否需要以管理员身份启动 shell 您可以尝试runas http ss64 com nt
  • 如何从我自己的脚本向 Fish shell 提供制表符补全?

    我运行的是 Ubuntu 13 10 和 Fish 2 1 0 我想自己编写一个 Python 脚本来从命令行执行一些任务 该脚本将需要命令行参数 我怎样才能编写我的脚本 以便 Fish 可以请求并获取给定参数的可能值 潜在值列表是动态的
  • bash中的用户名、密码程序

    我有一个程序 要求用户输入用户名和密码 然后将其存储在文本文件中 第一列是用户名 第二列是密码 我需要一个命令 在用户输入用户名和新密码时替换密码 如下我拥有的 bin bash admin menu Register User echo
  • shell-out 值到 md5(加密)函数

    我正在寻找一种解决方案 我正在构建 JSON 记录 并需要在 JQ 中生成一些文本 但将此文本通过管道传输到 MD5 求和函数并将其用作键的值 echo first John last Big jq id first last md5 通过

随机推荐

  • 使用依赖项从 Swift 2.3 迁移到 Swift 3

    我正在努力将我的项目从 Swift 2 3 迁移到 Swift 3 但我通过 Cocoapods 使用的第三方框架遇到了问题 其中许多已经升级到 Swift 3 但也有一些尚未升级 当我构建项目时 出现错误 使用 Swift 2 3 编译的
  • 将图像放置在 CSS 中另一个现有的 `` 上

    我正在做一个页面 其中显示视频的缩略图 当您单击时 它会弹出一个 YouTube 视频 这个缩略图是 195x195 的简单图像 但最终客户端会按原样上传 我想通过 CSS 在视频图像上添加一个 播放图标 与 IE7 兼容 我不知道如何处理
  • 如何将本地 ORC 文件转换为 CSV?

    我的本地计算机上有一个 ORC 文件 我需要其中的任何合理格式 例如 CSV JSON YAML 如何将 ORC 转换为 CSV Download https orc apache org docs java tools html 解压文件
  • 访问类内的函数指针

    我在类中定义函数指针并尝试通过该类的实例访问它 但它显示错误 这是代码 1 include
  • 无法在 Eclipse 中将项目添加到 Tomcat 服务器

    我无法将我的项目添加到 Eclipse 中的服务器 这是为什么 我安装了所有必要的工具 Web Dev Java EE 服务器适配器和 Tomcat 本身 一切 我配置了运行时环境 将所有 Java 版本调整为 JDK 6 因为它应该在 T
  • 有效计算边界自适应邻域平均值

    我有一张图像 其值范围为 0 到 1 我喜欢做的是简单的平均 但是 更具体地说 对于图像边界处的单元格 我想计算位于图像范围内的邻域 内核部分的像素平均值 事实上 这可以归结为适应 平均公式 的分母 即总和除以的像素数 我设法做到这一点 如
  • 将风格应用于第一个孩子?

    有没有某种方法可以将样式应用于容器的第一个 或最后一个或第 n 个 子容器 任何包含子容器的容器 我正在尝试自定义选项卡项目的外观 以便第一个选项卡具有与其他选项卡不同的边框半径 这就是我现在所拥有的
  • 让 Java servlet 充当代理的代码?

    我有两个 Java Web 应用程序 它们有一个映射到特定 URL 的 servlet red war WEB INF classes com me myorg red RedServlet maps to http red example
  • 一个更好的程序来计算数字的平方根

    我是 C 编程语言的初学者 我的任务是编写一个程序来计算自然数的平方根 而不使用math h或任何其他库函数 除了stdio h 看看我们的合作伙伴int自始至终 对于非平方数 我们求 n 的平方根的下限 现在我已经编写了这个程序 但它只适
  • 带 goto 的扩展 asm(包括 gcc 文档中的示例)无法编译

    一些扩展的汇编语句使用goto限定符无法使用 GCC 10 1 0 进行编译 具体来说 int foo int count asm goto dec 0 jb l stop r count stop return count stop re
  • 仍登录 MVC 站点,但无法调用 Web API

    我有一个 ASP NET MVC 站点 IdentityServer4 主机和一个 Web API 当我使用外部提供商 Facebook 登录 MVC 站点时 我登录得很好 从 MVC 站点我还可以正确使用 Web API 然而 第二天 我
  • PHP 中的百分号是什么意思?

    这到底是什么意思 number 3 2 7 7 这是modulus http ca php net manual en language operators arithmetic php如上所述 运算符返回除法运算的余数 例子 3 5返回
  • 在 Windows 上向 QProcess 发送 Ctrl+C

    抓紧你的马鞍 这是一个很长的马鞍 如果您不想阅读所有内容 请跳至 MCVE 部分 我正在尝试制定一个流程QProcess优雅地退出 我不控制有问题的进程如何退出 它只接受 Ctrl C 信号 令我困惑的是 这听起来非常简单明了QProces
  • 使用 Kafka Connect 将架构和数据更改从 MySQL 流式传输到 MySQL

    我们如何使用 Kafka 连接源连接器将架构和数据更改以及某种转换传输到另一个 MySQL 实例 如果我使用 Kafka 的 Python 库 confluence kafka 在加载到目标数据库之前消费和转换消息 是否有办法传播模式更改
  • ChipGroup单选

    我怎样才能强制ChipGroup表现得像RadioGroup就像总是至少有一个选定的项目一样 环境setSingleSelection true 如果您单击两次 还可以增加不选择任何内容的可能性Chip 为了防止所有芯片被取消选择 您可以使
  • numpy python:从一列中查找另一列中每个唯一值的最高值

    有人可以建议一种有效的方法来为另一列中的每个唯一值获取一列中的最高值吗 np array 看起来像这样 column0 column1 column2 column3 37367 421 231385 93 37368 428 235156
  • iOS 中可以使用 RFCOMM 吗?

    我在 iOS 开发方面相对较新 我想做一个跨平台的蓝牙应用程序 在Android中 我使用RFCOMM发送custom数据 如字符串 当我用谷歌搜索 iOS蓝牙 时 我找到了Core Bluetooth结果中的框架似乎是为低能耗连接而设计的
  • 根据条件清理数据框

    我有一个看起来像这样的数据框 虚拟数据 df1 lt structure list Date c 24 06 2002 24 06 2002 25 06 2002 02 07 2002 24 07 2002 08 07 2002 08 07
  • 熊猫:增加日期时间

    我需要采取一些行动date在 df 列中 buys date min buys date MonthDelta 1 buys date min buys date timedelta days 5 但它返回 类型错误 日期时间 时间增量操作
  • Shell 脚本参数[重复]

    这个问题在这里已经有答案了 解析 shell 脚本命令中的参数然后验证它的最佳方法是什么 例如bash someScript sh p