shell脚本中getopts 使用

2022-12-13  本文已影响0人  只想做个俗人_贪财_好色
#! /bin/bash
#选项后面的冒号表示该选项需要参数
while getopts ":v:" arg; 
do
    case $arg in
         v )
            #参数存在$OPTARG中
            echo "arg:$OPTARG"
            ;;
         : )
           echo "缺少参数值"
           exit 1
           ;;
         [?] )  #当有不认识的选项的时候arg为?
            echo "请输入 -v (如:-v hello)"
            exit 1
            ;;
    esac
done

执行

./hello.sh   -v hello

输出

arg:hello

执行(包含“?” 需要转义)

./hello.sh   -\?   
 ./hello.sh   -a

输出

请输入 -v (如:-v hello)

执行(-v 没有参数值)

./hello.sh   -v

输出

缺少参数值

原因在 ":v:" 会在前面有":" 如果 改成"v:" 就不会有缺少参数值 都会走 “[?]”选项

上一篇 下一篇

猜你喜欢

热点阅读