2017-02-23 24 views
0

這是我的Bash腳本。

假設: 1)go.sh是執行 2)用戶將啓動腳本這樣

# ./go.sh -v file1.txt file2.txt 

# ./go.sh --verbose file1.txt file2.txt 

3)我想腳本有一個更優雅的方式來寫這個:

#!/bin/bash 
Verbose_Mode=0 

until [ "$#" == "0" ]; do 
    case $1 in 
    "-v" or "--verbose") 
     Verbose_Mode=1 
     ;; 

這將導致我n語法錯誤,因爲:「 - v」或「--verbose」。

我的問題:我怎麼能寫正確(如果可能)的代碼:

#!/bin/bash 
Verbose_Mode=0 

until [ "$#" == "0" ]; do 
    case $1 in 
    "-v") 
    Verbose_Mode=1 
    ;; 
    --verbose") 
    Verbose_Mode=1 
    ;; 
    esac 

預先感謝答案。

+0

請參閱[如何寫猛砸case語句(HTTP:/ /stackoverflow.com/questions/16673570/bash-case-statement)Bash case語句的正確語法。 – codeforester

+0

您是否允許用戶在線路上的任何地方使用開關或僅將其作爲第一個參數?如果只是第一次,你可以簡單地測試它,轉移並繼續前進。 – grail

+0

參見[BashFAQ/35](http://mywiki.wooledge.org/BashFAQ/035)和[ComplexOptionParsing](http://mywiki.wooledge.org/ComplexOptionParsing)。 –

回答