case语句在bash中

我试图用case语句来判断我是否有合法的命令。 它看起来像这样:

function commandTest { case $1 in –score) echo "something" return 0;; . . . *) echo unknown return 0;; esac return 1 } 

现在如果我使用这样的function,它不起作用。 大小写不正确虽然它是相同的

  commandTest "-score" 

它不打印“东西”。 所以我在这里做错了什么?

在发布之后,您的示例代码在score前面有一个连字符 (Unicode U + 2013),而不是减号(ASCII 0x2D),这会阻止bash与字符串-score

开关:

 –score) echo "something" 

至:

 -score) echo "something"