getopts
#!/usr/bin/env bash #while getopts a:b name; do # echo name: "$name", OPTARG: "$OPTARG", OPTIND: $OPTIND, OPTERR: "$OPTERR" #done echo "$*" echo "$@" status=off filename= output= usage() { echo Usage: echo "$0 [-h] [-v] [-f <filename>] [-o <filename>]" exit 0 } while getopts :hvf:o: name; do case "$name" in h) echo name: "$name", OPTARG: "$OPTARG", OPTIND: $OPTIND, OPTERR: "$OPTERR" usage ;; v) echo name: "$name", OPTARG: "$OPTARG", OPTIND: $OPTIND, OPTERR: "$OPTERR" status=on ;; f) echo name: "$name", OPTARG: "$OPTARG", OPTIND: $OPTIND, OPTERR: "$OPTERR" filename="$OPTARG" if [ ! -f "$filename" ]; then echo filename: "$filename" does not exist exit 5 fi ;; o) echo name: "$name", OPTARG: "$OPTARG", OPTIND: $OPTIND, OPTERR: "$OPTERR" output="$OPTARG" if [ ! -f "$output" ]; then echo output: "$output" does not exist exit 5 fi ;; '?') # ? have to be quoted, because it's a wildcard, or \? echo name: "$name", OPTARG: "$OPTARG", OPTIND: $OPTIND, OPTERR: "$OPTERR" echo invalid option -"$OPTARG" exit 6 ;; :) echo name: "$name", OPTARG: "$OPTARG", OPTIND: $OPTIND, OPTERR: "$OPTERR" echo option -"$OPTARG" require a argument exit 7 ;; esac done echo status: $status, filename: "$filename", output: "$output",
分类:
Commands
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2020-11-09 强制删除Windows文件夹
2020-11-09 Cygwin Windows下的Linux终端模拟器
2020-11-09 mysql中utf8和utf8mb4区别
2020-11-09 MySQL char varchar
2020-11-09 mysql SQL
2020-11-09 WSGI python