bash中的case语句

时间:2013-12-25 13:58:13

标签: bash unix case

我正在尝试使用case语句来确定我是否有合法的命令。它看起来像这样:

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

现在如果我使用这样的功能,它就不起作用了。 case虽然相同但无法正确识别字符串

 commandTest "-score" 

它不会打印“某事”。那我在这里做错了什么?

1 个答案:

答案 0 :(得分:6)

发布后,您的示例代码在score前面有en-dash(Unicode U + 2013),而不是减号(ASCII 0x2D),这会阻止bash匹配字符串{ {1}}

开关:

-score

为:

–score) echo "something"