当我测试下面的代码时,我得到了一个错误:
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结果的函数。不必为那事担心了。
非常感谢!
发布于 2015-11-09 21:04:51
必须用;;终止与特定大小写值关联的命令。
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)开始一个新的案例,而前一个案例没有终止。
https://stackoverflow.com/questions/33618208
复制相似问题