操作系统:AIX 7.1
我正在编写一个 shell 脚本,它让用户输入一些命令并执行它,其中一个命令采用以下形式:
compile appname
应用程序名称只能是 [ccms|asws] 之一,在 case 语句中匹配它的正确模式是什么?
这是我的 shell 脚本:
while true
do
read cmd
case $cmd in
"compile(\s)(ccms)|(asws)") compile
;;
*) break
;;
esac
done
compile(){
...
}
答案1
让read
命令去分裂。
read cmd arguments
case $cmd in
compile)
…
;;
esac
答案2
这应该可以在任何兼容 POSIX 的 shell 中工作:
case $cmd in
"compile ccms"|"compile asws") compile
;;
*) break
;;
esac