我收到错误消息:意外标记'done'附近的语法错误

时间:2019-01-06 11:50:40

标签: bash shell

这是我的代码,请您帮我知道错误原因:

#!/bin/bash

n=2
echo "Entrez votre Login"
read login
v=$(grep -i $login GestionUtilisateurs/user.txt)
if [[ $v ]]; then

echo "Entrez votre MDP"
read -s password
v2=$(grep -i $login GestionUtilisateurs/user.txt | cut -d ':' -f 2 | grep -w $password)
if [[ $v2 ]]; then

./menu2.sh 

else
while [ $n -gt 0 ]
do
  if [ "$password" != "$v2" ]; then
  echo "MDP non valide. Reesayez"
  echo "Il vous reste $n tentative"
  read -s password   
  v3=$(grep -i $login GestionUtilisateurs/user.txt | cut -d ':' -f 2 | grep -w $password)
 if [[ $v3 ]]; then

./menu2.sh 
else
n=$(( n-1 ))

done
fi
fi

else
echo "Nouvel Utilisateur"
echo "Entrez votre MDP"
read -s password
`echo "$login:$password" >> GestionUtilisateurs/user.txt`

v=$(grep -i $login GestionUtilisateurs/user.txt | cut -d ':' -f 2 | grep -w $password)
if [[ $v ]]; then

echo "bien ajoute" 
./menu2.sh 
 fi
fi

1 个答案:

答案 0 :(得分:0)

fidone被交换,而缺少fi导致错误。
希望我格式化正确,请检查并答复是否符合您的要求。

#!/bin/bash

n=2
echo "Entrez votre Login"
read login
v=$(grep -i $login GestionUtilisateurs/user.txt)
if [[ $v ]]; then
    echo "Entrez votre MDP"
    read -s password
    v2=$(grep -i $login GestionUtilisateurs/user.txt | cut -d ':' -f 2 | grep -w $password)
    if [[ $v2 ]]; then
        ./menu2.sh 
    else
        while [ $n -gt 0 ]
        do
            if [ "$password" != "$v2" ]; then
                echo "MDP non valide. Reesayez"
                echo "Il vous reste $n tentative"
                read -s password   
                v3=$(grep -i $login GestionUtilisateurs/user.txt | cut -d ':' -f 2 | grep -w $password)
                if [[ $v3 ]]; then
                    ./menu2.sh 
                else
                    n=$(( n-1 ))
                fi
            fi
        done
    fi
else
    echo "Nouvel Utilisateur"
    echo "Entrez votre MDP"
    read -s password
    `echo "$login:$password" >> GestionUtilisateurs/user.txt`

    v=$(grep -i $login GestionUtilisateurs/user.txt | cut -d ':' -f 2 | grep -w $password)
    if [[ $v ]]; then
        echo "bien ajoute" 
        ./menu2.sh 
    fi
fi