2012-10-30 141 views
0

我一直試圖讓我的菜單工作,但它似乎一次只接受一個參數/選項,我怎樣才能讓它接受多個選項?命令行菜單選項

#!/bin/bash 

##### Main 

function usage 
{ 
    echo " 
usage: infinidb [[-f file ] [-i] | [-h]] name ... 
} 

     while [ "$1" != "" ]; do 
     case $1 in 
      -f | --file)   shift 
            filename=$1 
            ;; 
      -i | )     filename2=$2 
            ;; 
      -h | --help)   usage 
            exit 
            ;; 
      *)      usage 
            exit 1 
     esac 
     shift 
    done 

      echo $filename 
      echo $filename2 

運行腳本時

以下輸出秀節目

./script.sh -f蘋果-i樹

蘋果樹

回答

1

這對我的作品

#!/bin/bash 

    while [ "$1" != "" ]; do 
    case $1 in 
     -f | --file)   shift 
           filename=$1 
           ;; 
     -i)     filename2=$2 
           ;; 
    esac 
    shift 
done 

     echo $filename 
     echo $filename2 

只有一個問題-i |)

+0

它的工作原理,非常感謝你,只是想知道是否有可能添加更多的菜單選項?我嘗試使用變量filename3添加-b,我希望它也可以回顯,但它不起作用。 – Deano

+0

一般來說沒有限制。你必須小心'shift' – Bernhard