#1 Le 04/03/2011, à 19:29
- neokal
[RESOLU] Structure comparative
Bonjour à tous,
Voila j'écrit un script et pour le moment pas de soucis mais voila que je dois comparer deux variables
Quand je créé un fichier script.sh contenant
#!/bin/bash
var1="truc"
var2="truc"
echo "var1=$ext"
echo "var2=$var2"
if [[ $var1 == $var2 ]]
then echo 'Les deux valeurs sont identiques'
fi
if ( $var1 == $var2 )
then echo 'Les deux valeurs sont identiques'
fi
exit 0
la console me renvoi
script.sh: 11: [[: not found
script.sh: 14: truc: not found
J'ai chercher tous les tutos possibles et imaginable essayer plein de syntaxe différente et la je déclare forfait, je dois etre un peu abrutit mais vraiment ya un truc qui m'échappe
SVP éclairez moi car la je suis un peu bloqué en faite
Dernière modification par neokal (Le 05/03/2011, à 09:13)
Celui qui se transforme en bête se délivre de la douleur d'être un homme...
Hors ligne
#2 Le 04/03/2011, à 19:38
- neokal
Re : [RESOLU] Structure comparative
ce qui est fou c'est que j'utilise deja deux autres comparaison
if ((test -f $file))
et
if !($path)
qui fonctionne a merveille
Celui qui se transforme en bête se délivre de la douleur d'être un homme...
Hors ligne
#3 Le 04/03/2011, à 19:39
- Bousky
Re : [RESOLU] Structure comparative
if [ "$var1" = "$var2" ]
Tu n'as pas besoin ici des tests étendus, == c'est en C, et les guillemets sont indispansables si l'une des variables peut être vide. Et les espaces à l'intérieur comme à l'extérieur des crochets sont indispensables.
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#4 Le 04/03/2011, à 19:43
- neokal
Re : [RESOLU] Structure comparative
merci j'avou que la syntax me rebute pas mal, notament sur les fonctions ou j'ai galérer un petit moment
trop habitué au php et C je crois
en tous les cas merci et bonne soirée a toi
Celui qui se transforme en bête se délivre de la douleur d'être un homme...
Hors ligne
#5 Le 04/03/2011, à 19:45
- mjdon
Re : [RESOLU] Structure comparative
la partie
if [[ $var1 == $var2 ]]
then echo 'Les deux valeurs sont identiques'
fi
fonctionne bien chez moi. Les erreurs classiques c'est quand on oublie des espaces autour des [[ . Donc la j'ai pas d'idée
Hors ligne
#6 Le 04/03/2011, à 19:48
- Bousky
Re : [RESOLU] Structure comparative
Il me semble que les tests étendus ( entre [[ ]]) peuvent être activés-désactivés au niveau de bash.
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#7 Le 04/03/2011, à 19:48
- neokal
Re : [RESOLU] Structure comparative
non elle marche pas chez moi j'ignore pourquoi, c'est bien pour ca que j'ai posté car la je pigeais vraiment pas
J'ai :
GNU bash, version 4.1.5(1)
en tous les cas
if [ "$var1" = "$var2" ]
fonctionne bien et va me permettre d'avancer
je trouve tout cela trés curieux si quelqu'un connait la réponse a ce mystére...
Dernière modification par neokal (Le 04/03/2011, à 19:55)
Celui qui se transforme en bête se délivre de la douleur d'être un homme...
Hors ligne
#8 Le 04/03/2011, à 20:05
- neokal
Re : [RESOLU] Structure comparative
si vous savez comment activer les tests étendu au niveau du bash svp car je risque d'étre bloqué sur pas mal de truc (ca marche mais je trouve pas mon scripts trés beau au final , trop de variable de partout et pour rien)
je prendrais le temps de trouver dans le week end , si j'y arrive je posterais ici
HELP
Celui qui se transforme en bête se délivre de la douleur d'être un homme...
Hors ligne
#9 Le 04/03/2011, à 23:03
- Watael
Re : [RESOLU] Structure comparative
ça
GNU bash, version 4.1.5(1)
ne signifie pas que tu utilises bash.
$SHELL devrait être /bin/bash
et $BASH_VERSION être 4.1.5(1)-release
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#10 Le 05/03/2011, à 01:06
- neokal
Re : [RESOLU] Structure comparative
echo $BASH
/bin/bash
echo $BASH_VERSION
4.1.5(1) - release
Bon du coup j'arrive quand meme a faire ce que je veux mais c'est vraiment pas beau du tout
Comment activer les tests étendus SVP , j'ai chercher un peu partout sur le net et pour le moment je ne trouve rien
Je misére un peu et je risque de souvent mettre + de temps à réaliser ce que je veux faire
Merci
Celui qui se transforme en bête se délivre de la douleur d'être un homme...
Hors ligne
#11 Le 05/03/2011, à 04:39
- Watael
Re : [RESOLU] Structure comparative
est-ce que, par hasard, tu tenterais d'executer ton script par
sh script.sh
parce que le comportement que tu décris est celui de dash, pour lequel sh est un lien.
la bonne façon de lancer un script est de mettre un hashbang désignant le bon shell au début du script
#!/bin/bash
de le rendre executable
chmod u+x script.sh
, et enfin le script se lance tout seul (ou presque)
./script.sh
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#12 Le 05/03/2011, à 08:54
- neokal
Re : [RESOLU] Structure comparative
Merci Watael
C'est exactement ca en faite !!
Désolé d'avoir posté pour ca mais j'avou que la j'étais pas mal rebuté pour le coup
Je pensais que sh lancait le bash tout bétement faut dire que je suis sous linux depuis 15 jours donc je me casse forcément un peu les dents ;-)
Va falloir que je perde ma mauvaise habitude >sh
Merci franchement
Celui qui se transforme en bête se délivre de la douleur d'être un homme...
Hors ligne
#13 Le 05/03/2011, à 21:51
- sputnick
Re : [RESOLU] Structure comparative
(( ... ))
c'est pour l'arithmetique
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne