Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/08/2013, à 01:23

l0f4r0

Script bash - (($answer=="non"))

Bonsoir,

Je ne comprends pas pourquoi la sortie me renvoie toujours "Bye" que je choisisse de rentrer le texte "oui" ou "non". Quelqu'un aurait-il une piste ? Merci.

Code :

#!/bin/bash
if (($#==1)) && [ -f $1 ] 
then
[ -f fic.txt ] && { echo "Le fichier fic.txt existe déjà. Souhaitez-vous l'écraser [oui/non] ?" ; read answer ; (($answer=="non")) && { echo Bye ; exit 10 ; } }
echo '' > fic.txt
while read ligne
do
echo Nom : $(echo $ligne | cut -d ',' -f1) >> fic.txt
echo Prénom : $(echo $ligne | cut -d ',' -f2) >> fic.txt
echo Age : $(echo $ligne | cut -d ',' -f3) >> fic.txt
echo Profession : $(echo $ligne | cut -d ',' -f4) >> fix.txt
echo Téléphone : $(echo $ligne | cut -d ',' -f5) >> fix.txt
echo '' >> fix.txt
done < $1
else echo Erreur : soit vous avez renseigné plusieurs paramètres, soit votre fichier .csv n\'est pas un fichier régulier existant 
fi

Exemple de sortie :

~/Desktop $ ./csvTotxt.sh MonSuperCSV.csv
Le fichier fic.txt existe déjà. Souhaitez-vous l'écraser [oui/non] ?
oui
Bye

Hors ligne

#2 Le 19/08/2013, à 01:51

Watael

Re : Script bash - (($answer=="non"))

salut,

(( est une évaluation arithmétique, si tu ne lui donnes pas un nombre à évaluer, forcément, le test renverra faux !

Dernière modification par Watael (Le 19/08/2013, à 01:51)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 19/08/2013, à 07:56

serged

Re : Script bash - (($answer=="non"))

En général, pour ça, j'utilise un case, ce qui permet de traiter tous les cas :

echo -n "On le fait ?(O/N)"
read rep
case $rep in
 o|O|y|Y) echo "on le fait" 
 n|N) echo "on le fait pas...."
 *) echo "Vous dites ?"
esac

LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne