shell中脚本参数传递getopts

while getopts ":a:b:c:" opt
do
    case $opt in
        a)
        echo "参数a的值$OPTARG"
        ;;
        b)
        echo "参数b的值$OPTARG"
        ;;
        c)
        echo "参数c的值$OPTARG"
        ;;
        ?)
        echo "未知参数"
        exit 1;;
    esac
done

输出

bogon:Desktop macname$ ./test.sh -a 1 -b 2 -c 3
参数a的值1
参数b的值2
参数c的值3
bogon:Desktop macname$ ./test.sh -a 1 -b 2
参数a的值1
参数b的值2
bogon:Desktop macname$ ./test.sh -a 1 -c 2
参数a的值1
参数c的值2
bogon:Desktop macname$ ./test.sh -b 1 -c 2 -a 3
参数b的值1
参数c的值2
参数a的值3
bogon:Desktop macname$ ./test.sh -b 1 -c 2 -d 3
参数b的值1
参数c的值2
未知参数
bogon:Desktop macname$ ./test.sh -b 1
参数b的值1
bogon:Desktop macname$ ./test.sh
bogon:Desktop macname$ 

参考:

https://blog.csdn.net/sinat_36521655/article/details/79296181

原文地址:https://www.cnblogs.com/sea-stream/p/11396325.html