#1 Le 05/04/2018, à 19:48
- selem5962
If Comparaison de variable [RESOLU]
Bonjour, j'ai besoin de votre savoir, je n'arrive pas à trouver la solution à cette petite problématique.
while read motpresent
do
if [ "$champ2" = "$motpresent" ]
then
verrou=1
fi
done < ./Tmp/fichier.txt
J'ai besoin de comparer deux variables dans un script bash.
Ces variables sont suseptibles de contenir des espaces, des caractère spéciaux (^ ? . ! :...).
Comment puis je faire pour comparer ces deux variables $champ2 et $motpresent ?
Pour le moment la lecture des variables me provoque l'erreur :
script.sh: ligne 4: images.jpg : commande introuvable
Merci d'avance.
Dernière modification par selem5962 (Le 06/04/2018, à 13:26)
Hors ligne
#2 Le 05/04/2018, à 20:03
- pingouinux
Re : If Comparaison de variable [RESOLU]
Bonsoir,
Le message d'erreur ne correspond pas au script que tu montres (qui me paraît correct).
Hors ligne
#3 Le 05/04/2018, à 20:40
- selem5962
Re : If Comparaison de variable [RESOLU]
Malheureusement pour moi sisi ça correspond bien.
Image.jpg correspond à une variable qui ne passe pas à cause du "."
Hors ligne
#4 Le 05/04/2018, à 20:52
- Watael
Re : If Comparaison de variable [RESOLU]
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 06/04/2018, à 05:57
- pingouinux
Re : If Comparaison de variable [RESOLU]
Montre le contenu complet de script.sh. Je maintiens que ce message d'erreur
script.sh: ligne 4: images.jpg : commande introuvable
ne peut pas se référer à cette portion de script
while read motpresent
do
if [ "$champ2" = "$motpresent" ]
then
verrou=1
fi
done < ./Tmp/fichier.txt
Édité :
Montre aussi le contenu de ./Tmp/fichier.txt
Dernière modification par pingouinux (Le 06/04/2018, à 05:59)
Hors ligne
#6 Le 06/04/2018, à 06:51
- bipede
Re : If Comparaison de variable [RESOLU]
Montre le contenu complet de script.sh. Je maintiens que ce message d'erreur
script.sh: ligne 4: images.jpg : commande introuvable
ne peut pas se référer à cette portion de script
while read motpresent do if [ "$champ2" = "$motpresent" ] then verrou=1 fi done < ./Tmp/fichier.txt
Édité :
Montre aussi le contenu de ./Tmp/fichier.txt
+1
Desktop: MSI - Intel® Core™ i5-3330 CPU @ 3.00GHz × 4 - RAM 8 go- Kubuntu 21.04 - Système sur SSD 64 Go - /home sur HDD 500 Go.
Laptop: DELL Inspiron-15 3567 - Intel® Core™ i5-7200 CPU @ 2.50GHz × 4 - RAM 8 go - HDD 1 To - Ubuntu 20.10 avec /home séparé.
Mon site: Les contributions du bipède
Hors ligne
#7 Le 06/04/2018, à 12:16
- pingouinux
Re : If Comparaison de variable [RESOLU]
Prends l'habitude, quand tu utilises des variables, de les entourer de " " (par exemple : "$champ2").
La ligne 66 du script que tu montres en #7 peut causer une erreur, selon le contenu de $champ2, mais ce n'est pas la ligne 4 comme l'indique le message d'erreur.
$champ2 >> ./Tmp/fichier_a_verrouiller.txt
Hors ligne
#8 Le 06/04/2018, à 12:40
- Watael
Re : If Comparaison de variable [RESOLU]
touch : inutile
en-tête dans un fichier de données : inutile
grep + cut = awk (=> paste : inutile)
while read ligne : inutile -> mapfile
...
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#9 Le 06/04/2018, à 12:52
- selem5962
Re : If Comparaison de variable [RESOLU]
touch : inutile
en-tête dans un fichier de données : inutile
grep + cut = awk (=> paste : inutile)
while read ligne : inutile -> mapfile
...
Réponse inutile. Si j'ai envie d'utiliser touch je l'utilise, si j'ai envie de mettre un grep et cut et non un awk je le fais... Ce n'est pas l'objet de ma demande. Mais merci nous avons constaté que tu étais super fort avec plein de connaissances. Mais tu n'as pas résolu mon problème pour autant...
Merci pingouinux pour ta réponse. Je pense que le problème vient de la comparaison car si je commente ce IF le script s’exécute sans erreur. De plus la comparaison ne s'effectue pas car lors d'un résultat positif, la variable verrou ne passe pas à 1.
Merci d'avance pour votre aide.
Hors ligne
#10 Le 06/04/2018, à 13:10
- Watael
Re : If Comparaison de variable [RESOLU]
si tu veux faire ça, il faut aller dans une petite pièce fermée avec un trou au milieu.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#11 Le 06/04/2018, à 13:11
- selem5962
Re : If Comparaison de variable [RESOLU]
Merci Watael pour ta réponse encore très utile.
Hors ligne
#12 Le 06/04/2018, à 13:26
- selem5962
Re : If Comparaison de variable [RESOLU]
Il s'agissait d'un problème d'espace simplement dans une comparaison "X"="X" et "X" = "X".
Merci pour votre aide.
Hors ligne
#13 Le 06/04/2018, à 14:55
- erresse
Re : If Comparaison de variable [RESOLU]
Ben, c'est super que ce soit résolu, parce-que apparemment, personne n'a compris le problème et personnellement je ne comprends pas la solution...
Il s'agissait d'un problème d'espace simplement dans une comparaison "X"="X" et "X" = "X".
Que la comparaison soit '[ "X"="X" ]' ou '[ "X" = "X" ]', ça ne change absolument rien, le résultat est identique !
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#14 Le 06/04/2018, à 16:33
- selem5962
Re : If Comparaison de variable [RESOLU]
Une chance alors que j'ai trouvé seul lol
Hors ligne
#15 Le 06/04/2018, à 16:35
- pingouinux
Re : If Comparaison de variable [RESOLU]
@erresse :
En fait, il y avait cette ligne
if [ "$verrou"="0" ]
qui apparaissait à la ligne 64 du script présenté par selem5962 dans son message #7, message qu'il a supprimé depuis, histoire de rendre la chose encore plus confuse.
Hors ligne
#16 Le 06/04/2018, à 18:26
- Watael
Re : If Comparaison de variable [RESOLU]
erreur de DÉBUTANT !
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#17 Le 06/04/2018, à 18:44
- selem5962
Re : If Comparaison de variable [RESOLU]
Oui totalement c'est pour ça que je demandais l'aide de PRO... mais même pour des pros rien à faire personne n'a trouvé lol
Hors ligne
#18 Le 06/04/2018, à 19:16
- pingouinux
Re : If Comparaison de variable [RESOLU]
Oui totalement c'est pour ça que je demandais l'aide de PRO... mais même pour des pros rien à faire personne n'a trouvé lol
Avec les informations parcellaires et incohérentes que tu as données au début, on ne risquait pas de trouver…
Hors ligne