vCard = $有什么问题(echo $ REPLY | cut -d'i'-f 1)

时间:2015-11-09 21:02:39

标签: linux bash shell

当我测试下面的代码时,我得到一个错误说:

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结果的函数。别担心。

非常感谢!

1 个答案:

答案 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)启动新案例的尝试,而前一个案例未被终止。