getopt&&getopts

1.getopt

支持长选项 例如使用 --help 参数
  1. 方法1: 
  2. #!/bin/bash 
  3. A=($(getopt -o a[:]b[:] -l a,b -- "$@")) 
  4. for ((i = 0; i < ${#A[@]}; i++)) { 
  5.         eval opt=${A[$i]} 
  6.         case $opt in 
  7.                 -a|--a) 
  8.                 echo "aa" 
  9.                 ;; 
  10.                 --) 
  11.                 break 
  12.                 ;; 
  13.         esac 

  1. 方法2 
  2. #!/bin/bash 
  3. A=($(getopt -o a[:]b[:] -l a,b -- "$@")) 
  4. eval set -- "$A" 
  5. while true 
  6. do 
  7.         case "$1" in 
  8.         -a|--a) 
  9.         echo "aa" 
  10.         break 
  11.         ;; 
  12.         -b|--b) 
  13.         echo "bbb" 
  14.         ;; 
  15.         --) 
  16.         break 
  17.         ;; 
  18.         esac 
  19. done 

2.getopts

其中选项里面的:表示可以加参数
例如 example.sh -a canshu1
其中canshu1使用OPTARG变量进行调用
如下面的例子
其中NEWGAME和DEL等都是一些函数的调用
  1. while getopts a:dl OPTS 
  2. do 
  3.         case ${OPTS} in 
  4.                 a) 
  5.                 NEWDIR=${OPTARG} 
  6.                 NEWGAME 
  7.                 ;; 
  8.          d) 
  9.                 DGS=${OPTARG} 
  10.                 DEL 
  11.                 ;; 
  12.                 l) 
  13.                 SL 
  14.                 ;; 
  15.                 *) 
  16.                 echo "您的输入有误,请 example.sh -h 查看帮助" 
  17.                 ;; 
  18.         esac 
  19. done