getopt是一个解析参数的函数,相对而言使用getopt在开发Linux下的命令行工具时解析参数会方便很多。

Bash下的getopts命令

bash下的getopts函数能传入两个参数,第一个参数是操作符号字符串(optstring),第二个参数是一个变量用于储存当前获取到的符号。第二个参数很好理解,第一个参数可能就比较晕了。如下所示第一个参数传入的是’hvs:’,表示共有-h,-v和-s操作可选。其中在s后面有个冒号表示的是在-s操作后面有一个参数。h和v前没有冒号表示这个操作符号没有参数。操作的参数保存在$OPTARG内,使用时参考下列代码。

 #!/usr/bin/env bash
 # filename: test.sh
 
while getopts 'hvs:' opt; do
    case $opt in
    h)
        echo "usage: $0 -s <string> [-v] [-h]";
        ;;
    v)
        echo "version: 1.0.0";
        ;;
    s)
        echo "$OPTARG";
        ;;
    esac
 done

演示1:

$ sh test.sh -v
version: 1.0.0

演示2:

$ sh test.sh -s
No arg for -s option

演示3:

$ sh test.sh -s "Hello"
Hello

C语言下getopt函数的使用

C语言参考: 点击这里跳转