next up previous contents
Next: find Up: 外部命令 Previous: echo   Contents

getopt

getopts其實是ksh, bash的內部命令,getopt才是真的外部命令。 這很像C裡的getopt()。請看個例子
      while getopts :dvt:n: c
      do
         case $c in
            d)
                DEBUG=yes
            ;;
            t)
                TYPE=$OPTARG
            ;;
            n)
                NUMBER=$OPTARG
            ;;
            v)
                VERBOSE='yes'
            ;;
         esac
      done
其中冒號:是說這個參數一定要有跟著的參數值,沒有冒號像dv表示後面沒有帶著參 數值, 例如最常看到-v是說程式執行時是verbose mode就是這樣。 $OPTARG就是跟在後面的 參數,getopts自動幫我處理好,並且一個一個的丟進 $OPTARG來。他也有$OPTIND跟C library的用法很像



Cyril Huang 2002-06-14