bash增加命令行参数

使用getopt

示例如下:

bash 复制代码
TEMP=`getopt -o j: --long job:,install -- "$@"`
eval set -- "$TEMP"

INSTALL=
PACKAGE=
JOB_NUM=$(nproc)

while true ; do
        case "$1" in
                --install) INSTALL="ON"; shift ;;
                -j | --job) JOB_NUM=$2; shift 2;;
                --) shift ; break ;;
                *) echo "Internal error!" ; exit 1 ;;
        esac
done
# echo "options:INSTALL("$INSTALL"),PACKAGE("$PACKAGE"),JOB_NUM("$JOB_NUM")"
  • -o: 表示短选项,多个选项之间没有分割符。
    • 注:会有:或者::, 前者表示一定有值,后者表示可有值,或没有值
  • --long: 表示长选项,也可以使用 -l,多个选项之间用,分割
  • j:: 表示选项j一定要带值
  • install: 表示不带选项
相关推荐
winfredzhang3 分钟前
用 Node.js + SQLite + 原生前端写一个本地情绪急救 Web App:情绪降落伞 Mood Parachute
前端·sqlite·node.js·express·情绪管理
qq43569470111 分钟前
Vue03
javascript·vue.js
樱花的浪漫23 分钟前
Typescript、Zod基础
前端·javascript·人工智能·语言模型·自然语言处理·typescript
Bigger29 分钟前
记一次坑爹的 Cloudflare Pages 部署:Failed to load module script 是怎么把我的 SPA 搞挂的
前端·ci/cd·浏览器
竹林81834 分钟前
监听智能合约事件,我用 wagmi v2 踩了三天坑,终于找到了稳定方案
前端·javascript
星栈34 分钟前
Makepad 界面怎么做得更像产品,而不是示例
前端·rust
用户8524950718436 分钟前
Bun 到底是什么?一个比 Node.js "更快更香"的 JS 运行时
javascript·程序员
Momo__36 分钟前
SSR 懒水合四件套 — 99%的人不知道 Vue 3.5 藏了这些水合策略
前端·vue.js·性能优化
riuphan37 分钟前
JavaScript 事件循环:单线程异步编程的核心机制
前端·javascript
小小龙学IT41 分钟前
Midscene.js:AI驱动的跨平台UI自动化革命
javascript·人工智能·ui