[英]getopts not working - bash
我正在編寫一個接受參數的bash腳本。 我正在使用getopts來實現它。
#!/bin/bash
while getopts ":a" opt; do
case $opt in
a)
echo "-a was triggered!" >&2
;;
\?)
echo "Invalid option: -$OPTARG" >&2
;;
esac
done
但是上面的代碼返回是我這個錯誤。
'etOpts_test.sh: line 4: syntax error near unexpected token `in
'etOpts_test.sh: line 4: ` case $opt in
我正在使用CentOs 5.5
在第4行,您可能希望在case "$opt" in
(quote $opt
)。 否則,如果它包含一個元字符,則可能會失敗。
它應該是: ,而不是:a來表示需要參數的標志,也不應加問號,因為它用作通配符。 總體代碼將是(還顯示一個標志-h不帶參數):
function usage {
echo "usage: ..."
}
a_arg=
while getopts a:h opt; do
case $opt in
a)
a_arg=$OPTARG
;;
h)
usage && exit 0
;;
?)
usage && exit 2
;;
esac
done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.