问题
I'm trying to use a case statement to determine if I have a legal command. It looks something like this:
function commandTest {
case $1 in
–score) echo "something";;
*) echo "unknown";;
esac
}
Now if I use the function like this, it doesn't work. case
doesn't recognize the string correctly although it is identical.
$ commandTest "-score"
unknown
What am I doing wrong here?
回答1:
As posted, your sample code has an en-dash (Unicode U+2013) in front of score
, instead of a minus sign (ASCII 0x2D), which is preventing bash from matching the string -score
Switch:
–score) echo "something"
to:
-score) echo "something"
来源:https://stackoverflow.com/questions/20773530/option-not-recognized