Linux bash脚本(意外令牌'elif'附近的语法错误

时间:2017-03-09 12:48:36

标签: linux bash

echo "Wollen Sie mit einer Benutzererstellung beginnen? Ja(y), Nein(n)"
    read text
    if [ $text == "y" ];
        then echo "Wilkommen zum Benutzererstellungsskript"
        #Username hinzufügen
        echo "Wie soll der Benutzer heissen?"
        read username
        if grep -q 
        echo "Soll der User ein Homeverzeichnis haben? Ja(y), Nein(n)"
        read homeverzeichnis
        if [ $homeverzeichnis == "y" ];
            then sudo useradd -m $username
            echo "Sie haben $username erfolgreich mit Homeverzeichnis erstellt."
        elif [ $homeverzeichnis == "n" ];
            then sudo useradd $username
            echo "Sie haben $username erfolgreich ohne Homeverzeichnis erstellt."
        fi

    #Passwort setzen
    echo "Wollen Sie dem Benutzer noch ein Passwort geben? Ja(y), Nein(n)"
    read password
    if [ $password == "y" ];
        then sudo passwd $username
    elif [ $passwd == "n" ];
        then echo "Dann halt nicht"
    fi

    #in Gruppe hinzufügen
    int i = "1";
    while [ i == 1 ];
        do
            echo "Welcher Gruppe soll der Benutzer $username hinzugefügt werden?1,2,3,4,5"
            echo "1. Root"
            echo "2. HR"
            echo "3. Basis"
            echo "4. Design"
            echo "5. RW"
            read group

            if [[ $group == "1" ]];
                then usermod -aG $username root
                i = "0"
            elif [[ $group == "2" ]];
                then usermod -aG $username HR
                i = "0"
            elif [[ $group == "3" ]];
                then usermod -aG $username Basis
                i = "0"
            elif [[ $group == "4" ]];
                then usermod -aG $username Design
                i = "0"
            elif [[ $group == "5" ]];
                then usermod -aG $username RW
                i = "0"
            else
                i = "1"
            fi
        done
elif [ $text == "n" ];
    echo "Das Programm wird beendet!"
    exit 1
fi

在开始时,脚本会询问您是否要启动它。但是当您输入内容并按Enter键时,此错误会出现:

enter image description here

2 个答案:

答案 0 :(得分:0)

回声“Wollen Sie mit einer Benutzererstellung beginnen?Ja(y),Nein(n)”     阅读文字     if [“$ text”-eq y];         然后回应“Wilkommen zum Benutzererstellungsskript”         #Usernamehinzufügen         回应“Wie soll der Benutzer heissen?”         读用户名         如果grep -q;         然后         echo“Soll der User ein Homeverzeichnis haben?Ja(y),Nein(n)”         读homeverzeichnis         如果[“$ homeverzeichnis”-eq y];             然后sudo useradd -m $ username             echo“Sie haben $ username erfolgreich mit Homeverzeichnis erstellt。”         elif [“$ homeverzeichnis”-eq n];             然后sudo useradd $ username             echo“Sie haben $ username erfolgreich ohne Homeverzeichnis erstellt。”         网络

    #Passwort setzen
    echo "Wollen Sie dem Benutzer noch ein Passwort geben? Ja(y), Nein(n)"
    read password
    if [ "$password" -eq y ];
        then sudo passwd $username
    elif [ "$password" -eq n ];
        then echo "Dann halt nicht"
    fi

    #in Gruppe hinzufügen
    int i = "1"
    while [ "$i" -eq 1 ];
        do
            echo "Welcher Gruppe soll der Benutzer $username hinzugefügt werden?1,2,3,4,5"
            echo "1. Root"
            echo "2. HR"
            echo "3. Basis"
            echo "4. Design"
            echo "5. RW"
            read group

            if [ "$group" -eq 1 ];
                then usermod -aG $username root
                i = "0"
            elif [ "$group" -eq 2 ];
                then usermod -aG $username HR
                i = "0"
            elif [ "$group" -eq 3 ];
                then usermod -aG $username Basis
                i = "0"
            elif [ "$group" -eq 4 ];
                then usermod -aG $username Design
                i = "0"
            elif [ "$group" -eq 5 ];
                then usermod -aG $username RW
                i = "0"
            else
                i = "1"
            fi
        done
elif [ "$text" -eq n ];
    then echo "Das Programm wird beendet!"
    exit 1
fi

谢谢你们,但现在我又遇到了另一个问题......我不知道这件事是什么:enter image description here

答案 1 :(得分:-1)

Doppelte Klammern und doppelte Ist-Gleich Zeichen gibt nur beim Vertifizieren von Daten und bei Java。 Beispiel:

if [[ "$TIME" =~ ^[0-2][0-9]:[0-5][0-9]:[0-5][0-9]$ ]]; then
对不起,这里有一个英文版... ... 以下代码不是valide。

   if [[ $group == "1" ]];

它必须如下所示......

if [ "$group" -eq 1 ]; then
elif [ "$group" -eq 2 ]; then

以下是使用德语文档xD

进行bash脚本编写的god like guide