Bash break语句不会退出循环

时间:2014-05-24 10:42:08

标签: bash shell scripting

我的代码如下:

while [ true ] ; do
case "$curr_token" in
(";") break 
    ;;
(")") break 
    ;;
(",") break 
    ;;
esac
    parse_term
    next_token
if [ "$curr_type" != "<symbol>" ] ; then
    echo "Not an operator"
    exit
fi
echo "$token" >> ${file}P.xml
next_token
done

这里parse_term和next_token是我的代码中的子程序。如果变量$curr_token属于列出的案例(即;)'中),则将执行break语句。但即使上面列出$curr_token的案例,也会执行案例块之后的语句。

请解释为什么会这样?