Option not recognized

2020-02-02 02:36发布

问题:

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" 


标签: bash sh hyphen