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: 表示不带选项
相关推荐
Smoothcloud润云16 小时前
告别 Selenium:Playwright 现代 Web 自动化测试从入门到实战
前端·人工智能·selenium·测试工具·架构·自动化
前端小D17 小时前
ES6 中的 Promise
前端·javascript·es6·promise
光影少年17 小时前
React和Vue的区别?
前端·vue.js·react.js
遗憾随她而去.17 小时前
前端跨页面通信:8 种方案全解析(附实战案例)
前端
何中应17 小时前
<el-tag>标签使用
前端·vue.js·elementui
清汤饺子17 小时前
Cursor 独有的 12 个技巧:这些是 Claude Code 没有的
前端·后端·ai编程
白菜__17 小时前
阿里V2滑块小程序版本
javascript·爬虫·网络协议·小程序·node.js
Mr数据杨17 小时前
【Dv3Admin】FastCRUD富文本编辑器操作
前端·javascript
倾颜17 小时前
零成本本地大模型!用 Next.js + Ollama + Qwen3 打造流式聊天应用
前端·后端·ai编程
英俊潇洒美少年17 小时前
react useDeferredValue和useTransition有啥区别
javascript·react.js·ecmascript