1
我不擅長Bash腳本編寫,並試圖學習更多。讓我用代碼介紹我的問題:當選項存在時如何設置某些變量值
#!/bin/bash
version_num=
isWindows=
MSVC_VER=
VERBOSE=
while getopts 「hw:v:m:V」 OPTION
do
case $OPTION in
h)
usage
exit 1
;;
w)
isWindows=$OPTARG
;;
v)
version_num=$OPTARG
;;
m)
MSVC_VER=$OPTARG
;;
V)
VERBOSE=1
;;
?)
usage
exit
;;
esac
done
對於空間,使用函數被刪除。
我的問題是:
第一個問題:
目前,如果我使用這個劇本,我有每個選項後喂參數值,例如:
`bash test_bash.sh -v 4.2.2.0 -m 10.0 -w 1`
然而,假設我只需要查看-w
是否存在,然後設置一些變量值。我不想提供-w 1
,因爲1
只是一個標誌。我希望腳本能夠像這樣工作:
bash test_bash.sh -w -v 4.2.2.0 -m 10.0
我該如何做到這一點?我想要做一些類似rm -r -f
的事情,它可以有多個選項,並且不要求每個選項都有一些值。
第二個問題:
如果我刪除
V)
VERBOSE=1
;;
從
while
線
和:V
以及VERBOSE=
,這個腳本不工作了。是否因爲:V
是必需的?
非常感謝您的時間和幫助!
非常感謝我的明確解釋,我學到了。 – taocp 2013-05-07 17:43:49