当我测试下面的代码时,我得到一个错误说:
syntax error near unexpected token `)'
以下是代码:
oVideos=$Videos
Videos="Please select a video card: "
select myvideo in "Intel" \
"Intel i915" \
"Intel i965" \
"NVIDIA" \
"AMD" \
"ATI" \
"Radeon"
do
if [ "$REPLY" == "quit" ]; then
echo "OK, see you! Have a great one!"
exit
fi
if [ ! -z "$myvideo" ]; then
case $REPLY in
1) if [ checkVideoCard $REPLY == 0 ]; then
echo "VIDEO_CARDS=\"intel\"" >> $MAKECONF
fi
2) vCard=$(echo $REPLY | cut -d'i' -f 1)
if [ checkVideoCard $REPLY == 0 ]; then
echo "VIDEO_CARDS=\"intel i915\"" >> $MAKECONF
fi
esac
fi
done
...
checkVideoCard是一个旨在匹配用户选择和lspci结果的函数。别担心。
非常感谢!
答案 0 :(得分:1)
您必须使用;;
终止与特定案例值相关联的命令:
case $REPLY in
1) if [ "$(checkVideoCard "$REPLY")" = 0 ]; then
echo "VIDEO_CARDS=\"intel\"" >> $MAKECONF
fi
;;
# Because there's no difference among intel video cards, so please make sure what exact video card type you have.
2) vCard=$(echo $REPLY | cut -d'i' -f 1)
if [ "$(checkVideoCard "$REPLY")" = 0 ]; then
echo "VIDEO_CARDS=\"intel i915\"" >> $MAKECONF
fi
;;
esac
问题的分配不是,而是2)
启动新案例的尝试,而前一个案例未被终止。