我正在尝试使用case语句来确定我是否有合法的命令.它看起来像这样:
function commandTest {
case $1 in
–score) echo "something";;
*) echo "unknown";;
esac
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我使用这样的功能,它不起作用.case虽然相同,但无法正确识别字符串
$ commandTest "-score"
unknown
Run Code Online (Sandbox Code Playgroud)
它不打印"东西".那我在这里做错了什么?
发布后,您的示例代码前面有一个短划线(Unicode U + 2013)score,而不是减号(ASCII 0x2D),这阻止了bash与字符串匹配-score
开关:
–score) echo "something"
Run Code Online (Sandbox Code Playgroud)
至:
-score) echo "something"
Run Code Online (Sandbox Code Playgroud)