2013-07-15 52 views
1

我的問題是非常簡單的,但好像我不能似乎能夠找到與谷歌的答案:(定義變量輸入,帶 - 參數UNIX

如何與函數指定的參數 - 我寫的函數的參數

例如我爲bash編寫了這個.sh文件,但它需要5-6個輸入,所以很可能用戶可能會搞亂順序。運行如下:

function -m [email protected] -d dataset.csv -f filter ...

,而不必使用getopts()寫在正確的順序所有參數$ 1,$ 2等

感謝

+2

聽起來像getopt的/ getopts的是你所需要的。 – Gray

回答

2

嘗試。我認爲你遇到麻煩的原因是你的搜索條件。您需要像options,switchesarguments而不是parametersfunctions

這裏是一個快速和骯髒的例子。

while getopts "h?vf:" opt; do 
    case "$opt" in 
     h|\?) 
      show_help 
      exit 0 
      ;; 
     v) verbose=1 
      ;; 
     f) output_file=$OPTARG 
      ;; 
    esac 
done 

source

+0

謝謝,看看我能否使它工作。 – yatici

+0

#!/usr/bin/bash optget() { while getopts「a:b:」opt;做 案例「$ opt」在 a)out =「$ OPTARG」 \t ;; b)out2 =「$ OPTARG」 \t ;; ESAC 做 回聲「測試,如果我們得到了$,而這一個$ OUT2」 } 這確實需要在-a但-B OPTARG.So optget的輸出-a此-b自動過,是:測試我們是否得到這個。而這一個OPTARG 你能幫忙嗎? – yatici

+0

@yatici嘿,我不明白爲什麼這不起作用(它看起來應該是這樣),而且我目前沒有訪問linux終端(在工作中)。也許嘗試發佈它作爲另一個問題?唯一的辦法是仔細檢查你寫的b)與你寫的a)完全相同的方式)。 – Gray

相關問題