我正在尝试使用 case
语句来确定我是否有合法命令。它看起来像这样:
function commandTest {
case $1 in
–score) echo "something";;
*) echo "unknown";;
esac
}
现在,如果我像这样使用函数,它不起作用,因为case
无法正确识别字符串,尽管它是相同的。
$ commandTest "-score"
unknown
我在这里做错了什么?
如发布的那样,您的示例代码在 score
前面有一个破折号 (Unicode U+2013),而不是减号 (ASCII 0x2D),这会阻止 bash 匹配字符串-score
开关:
–score) echo "something"
自:
-score) echo "something"