0
我正在嘗試使用getopts
編寫一個簡短腳本。我希望它採用可選開關,或者只是默認運行。我有一個-d
開關來啓用調試,我希望每一個其他的參數是一個路徑。理想的命令行看起來因爲如此,與路徑是可選的,理論上無限的:將getopts與無開關路徑一起使用
$0 [-d] [/path1[ /path2[ ...]]]
我目前使用getopts
這樣如下:
while getopts ":d" opt; do
case $opt in
d)
DEBUG=true
;;
h)
echo USAGE: $0 \[-d\] \[\/mount\/point\/1 ...\]
exit 0
;;
\?)
echo Incorrect syntax
;;
esac
done
我可以把什麼在while getopts
節,並且在case
集合中允許輸入路徑,數量儘可能多?
所以我可以用標準循環遍歷它們......請問'getopts'也會刪除開關,所以我可以繼續使用'$ @'? –
不,'getopts'不會刪除開關,但它確實將'OPTIND'設置爲第一個非選項參數。因此,通過'$ {@:$ OPTIND}'循環將工作和/或轉移$((OPTIND - 1))'將會將它們移開。 –
工作正常!謝謝! –