我的問題是非常簡單的,但好像我不能似乎能夠找到與谷歌的答案:(定義變量輸入,帶 - 參數UNIX
如何與函數指定的參數 - 我寫的函數的參數
例如我爲bash編寫了這個.sh文件,但它需要5-6個輸入,所以很可能用戶可能會搞亂順序。運行如下:
function -m [email protected] -d dataset.csv -f filter ...
,而不必使用getopts()
寫在正確的順序所有參數$ 1,$ 2等
感謝
我的問題是非常簡單的,但好像我不能似乎能夠找到與谷歌的答案:(定義變量輸入,帶 - 參數UNIX
如何與函數指定的參數 - 我寫的函數的參數
例如我爲bash編寫了這個.sh文件,但它需要5-6個輸入,所以很可能用戶可能會搞亂順序。運行如下:
function -m [email protected] -d dataset.csv -f filter ...
,而不必使用getopts()
寫在正確的順序所有參數$ 1,$ 2等
感謝
嘗試。我認爲你遇到麻煩的原因是你的搜索條件。您需要像options
,switches
和arguments
而不是parameters
和functions
。
這裏是一個快速和骯髒的例子。
while getopts "h?vf:" opt; do
case "$opt" in
h|\?)
show_help
exit 0
;;
v) verbose=1
;;
f) output_file=$OPTARG
;;
esac
done
謝謝,看看我能否使它工作。 – yatici
#!/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
@yatici嘿,我不明白爲什麼這不起作用(它看起來應該是這樣),而且我目前沒有訪問linux終端(在工作中)。也許嘗試發佈它作爲另一個問題?唯一的辦法是仔細檢查你寫的b)與你寫的a)完全相同的方式)。 – Gray
聽起來像getopt的/ getopts的是你所需要的。 – Gray