Je voudrais créer un script qui supprime un répertoire avec rmdir
après confirmation avec un mot de passe en utilisant read
pour définir la variable.
Jusqu'ici j'ai ceci:
#!/bin/bash -x
echo "Password:"
read -t 30 S1
S2='55555'
if [ $S1=$S2 ]; then
rmdir /home/william/test
else
echo "fail"
sleep 10
fi
Donc, j'ai le -x
pour essayer de le déboguer, mais chaque fois que le script ne parvient pas à écho (si je mets le mot de passe incorrect) ou ne supprime pas le répertoire nécessaire.
Si quelqu'un a un script modifiable que je pourrais utiliser ou si vous pouvez signaler les problèmes liés au script actuel, ce serait formidable.
La bonne façon de comparer ces deux chaînes (S1
et S2
) en utilisant if
est la suivante:
if [ "$S1" = "$S2" ]
Ne soyez pas avare dans les espaces d'utilisation dans ce cas.
Voir: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html
Dans le script bash, vous devez comparer deux variables avec la méthode ci-dessous.
if [ "var1" != "var2" ]; then
Do something
fi;
Les espaces sont importants
Vous pouvez également utiliser GNU test
name__, par exemple:
test s1 = s2 && echo Equal || echo Not equal
Dans votre contexte, c'est:
test "$S1" = "$S2" && rmdir -v /home/william/test