getopts 命令
背景:
希望实现 test.sh -h 127.0.0.1 -p 6379
格式的脚本调用
实现:
getopts
#!/bin/bash # 语法格式 getopts optstring name [arg...] # 如果选项字符后面跟着一个冒号,则表明该字符选项需要一个命令行参数 # ":h:p:s"以冒号开头,则表明当命令行出现了optstring中没有的参数将不会提示错误信息 # 定义默认值 host="127.0.0.1" port="6379" msg="False" # 帮助函数 help(){ cat <<EOF usage: $0 -h 127.0.0.1 $0 -p 6379 $0 -s $0 -h 127.0.0.1 -p 6379 -s EOF } # 处理命令行参数 while getopts ":h:p:s" opt; do case $opt in # getopts命令每次被调用时,它会将下一个选项字符放置到变量中,OPTARG则可以拿到参数值 h) host=$OPTARG ;; p) port=$OPTARG ;; s) msg="True" ;; *) echo "Invalid option: -$OPTARG" >&2 help exit 1 ;; esac done # 输出结果 echo "${host}:${port} ${msg}"
root@master01:~# bash 1.sh -h 127.0.0.1 -p 6379 -s 127.0.0.1:6379 True
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏