我正在尝试将一些Windows bat文件移植到Mac shell脚本
执行包含以下case语句的文件时出现语法错误:
case ${1} in
( C | c ) echo "hoera";;
其中参数$ {1}以“C”
给出消息是:
-bash: even: line 6: syntax error near unexpected token `newline'
'bash: even: line 6: ` ( C | c ) echo "hoera";;
根据文档,我认为语法是正确的。我哪里错了?
答案 0 :(得分:3)
语法应为:
case $var in
CASE1) COMMAND-LIST;;
CASE2) COMMAND-LIST;;
esac
每个案例由一个或多个shell patterns组成,由管道分隔 - 您不需要左括号来匹配结束的括号。你的例子应该是:
case ${1} in
C|c) echo "hoera";;
或者可能:
case ${1} in
[Cc]) echo "hoera";;