Bash 认为输入不正确



我有这个脚本,但是在第 51 行,当我回答"y"时,bash 跳过它并告诉我"回答 y 或 n"(跳到第 58 行):

debianDeps() {
    apt-get install git cmake build-essential liblua5.2-dev 
        libgmp3-dev libmysqlclient-dev libboost-system-dev
}
fedoraDeps() {
    yum install git cmake gcc-c++ boost-devel 
        gmp-devel community-mysql-devel lua-devel
}
bsdDeps() {
    cd /usr/ports/shells/bash && make install clean BATCH=yes
    cd /usr/ports/devel/git && make install clean BATCH=yes
    cd /usr/ports/devel/cmake && make install clean BATCH=yes
    cd /usr/ports/lang/gcc47 && make install clean BATCH=yes
    cd /usr/ports/lang/luajit && make install clean BATCH=yes
    cd /usr/ports/devel/boost-libs && make install clean BATCH=yes
    cd /usr/ports/math/gmp && make install clean BATCH=yes
    cd /usr/ports/databases/mysql-connector-c && make install clean BATCH=yes
}
libInstall() {
    echo "Libraries and Build Tools... Installed"
}
bsdBuild() {
    echo "Building on FreeBSD"
    mkdir build && cd build
    CXX=g++47 cmake ..
    echo "Build on $cpuCores threads with $coreBuild processes? (experimental but loads faster) y or n "
        read $ans1_4
            if [[ $ans1_4 = "y" ]]; then
                echo -e $greenText"Building on $cpuCores threads with $coreBuild ."$none
                make -j $coreBuild
            elif [[ $ans1_4 = "n" ]]; then
                echo -e $blueText"Building on a single thread."$none
                make
            else
                echo "answer y or n"
                echo -e $redText"Answer y or n"$none
            fi
}   
genBuild() {
    echo "Building..."
    mkdir build && cd build
    cmake ..
        echo "Build on $cpuCores threads with $coreBuild processes? (experimental but loads faster) y or n "
        read $ans1_4
            if [[ $ans1_4 = "y" ]]; then
                echo -e $greenText"Building on $cpuCores threads with $coreBuild ."$none
                make -j $coreBuild
            elif [[ $ans1_4 = "n" ]]; then
                echo -e $blueText"Building on a single thread."$none
                make
            else
                echo -e $redText"Answer y or n"$none
            fi              
}
clean() {
    mkdir objs/
    mv *.o objs/
    echo "There might be a few leftover files."
}
###
### Script starts here
###
#check if root
if [[ $EUID -ne 0 ]]; then
    echo "You must be root to use this script, press enter to exit."
    read end
    exit 1
fi
#OS dependencies and other stuff
echo "Chose your Operating System. {Supported OS: Debian, Ubuntu, Fedora, CentOS, FreeBSD} "
read ans1 
if [[ $ans1 = "Fedora" ]] || [[ $nas1 = "CentOS" ]]; then
    echo -n "Should the script install dependencies? y or n"
    read ans1_1
    if [[ $ans1_1 = "y" ]]; then
        fedoraDeps
    elif [[ $ans1_1 = "n" ]]; then
        break
    else
        echo "Answer 'y' or 'n' "
    fi
elif [[ $ans1 = "Debian" ]] || [[ $ans1 = "Ubuntu" ]]; then
    echo -n "Should the script install dependencies? y or n"
    read ans1_1
    if [[ $ans1_1 = "y" ]]; then
        debianDeps
    elif [[ $ans1_1 = "n" ]]; then
        break
    else
        echo "Answer 'y' or 'n' "
    fi
elif [[ $ans1 = "FreeBSD" ]]; then
    echo -n "Should the script install dependencies? y or n"
    read ans1_1
        if [[ $ans1_1 = "y" ]]; then
            bsdDeps
        elif [[ $ans1_1 = "n" ]]; then
            break
        else
            echo "Answer 'y' or 'n' "
        fi              
        else
            echo "Pick a valid OS"      
        fi
#Compiling here
echo -n "Are we on FreeBSD? y or n"
read ans1_2
    if [[ $ans1_2 = "y" ]]; then
        bsdbuild
    elif [[ $ans1_2 = "n" ]]; then
        genBuild
    else
        echo "Answer y or n"
    fi
echo "Should the folder be cleaned? y or n"
    read ans1_3
    if [[ $ans1_3 = "y" ]]; then
        clean
    elif [[ $ans1_3 = "n" ]]; then
        echo "Exiting..."
        exit 1
    else
        echo "Answer y or n"
    fi

read $ans1_4应该read ans1_4 我在那里犯了一个小错误。

相关内容

  • 没有找到相关文章

最新更新