【发布时间】:2013-01-23 14:12:09
【问题描述】:
我正在编写一个 Ash 脚本并尝试检测输入变量是否等于“?”或不。我发现最好使用case 来执行此操作,但我无法使其正常工作。我的代码是:
case $@ in
*?*) usage
operationSucceeded
exit;;
*) echo "Unknown argument: $@"
usage
operationFailed
exit $E_OPTERROR;; # DEFAULT\
esac
第一个选项总是被触发,而我希望它仅在 ? 是变量时触发,而其他所有选项都是另一个选项。
【问题讨论】:
-
?是匹配任何单个字符的通配符,就像*匹配零个或多个字符 -- gnu.org/software/bash/manual/bashref.html#Pattern-Matching
标签: string shell switch-statement ash