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

参考1

posted @   mingtian是吧  阅读(1)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示