Pages : 1
#1 Le 21/06/2012, à 15:40
- tauraduboudin
condition if
Bonjour,
j'ai super honte de poster ça, mais ... je n'arrive pas à faire une condition dans le terminal.
num=20
test=10
if [$test<$num]; then echo "coucou"; else echo "au revoir"; fi
J'ai ce retour
-bash: [10: command not found
au revoir
Je ne vois vraiment pas pourquoi ni ce qu'il faut faire ...
Taura
Hors ligne
#2 Le 21/06/2012, à 15:52
- yzeew
Re : condition if
si tu mets ceci " > " ? sa donne quoi ?
<==============================| Linux in the blood | Linux For Life |==================================>
<====================| OS Hôte: #! CrunchBang | OS VM: Back|Track 5 RC1 Vision OpenBox |=====================>
Hors ligne
#3 Le 21/06/2012, à 15:57
- tauraduboudin
Re : condition if
ça donne ça :
num=20
test=10
if [$test>$num]; then echo "coucou"; else echo "au revoir"; fi
-bash: [10: command not found
au revoir
Hors ligne
#4 Le 21/06/2012, à 16:03
- pingouinux
Re : condition if
Bonjour,
$ if (( $test < $num)); then echo "coucou"; else echo "au revoir"; fi
coucou
$ if (( $test > $num)); then echo "coucou"; else echo "au revoir"; fi
au revoir
Dernière modification par pingouinux (Le 21/06/2012, à 16:04)
Hors ligne
#5 Le 21/06/2012, à 16:04
- tauraduboudin
Re : condition if
Merci Pingouin pour la leçon de syntaxe, elle me sauve la vie !
Jusqu'à maintenant je n'ai vu nul part de mention à cette double parenthèses,
merci !
Taura
Hors ligne
#6 Le 21/06/2012, à 16:13
- pingouinux
Re : condition if
man bash # Rubriques "Compound Commands" et "ARITHMETIC EVALUATION" (si version anglaise)
Hors ligne
#7 Le 21/06/2012, à 18:02
- Sciensous
Re : condition if
mais aussi:
if [ $test -lt $num ]; then echo "coucou"; else echo "au revoir"; fi
-lt=lower than
-gt= greater than
-eq=...
Dernière modification par Sciensous (Le 21/06/2012, à 18:02)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#8 Le 21/06/2012, à 19:33
- Bousky
Re : condition if
Il y a en fait deux erreurs dans ce que tu avais écrit : pour faire des tests avec « […] » il faut impérativement des espaces (c'est un commande comme une autre, interprétée par le shell) et cette commande utilise une syntaxe propre pour « < » et compagnie (car ces caractères ont déjà une autre signification pour le sell).
On peut aussi écrire :
[ $test -lt $num ] && echo "coucou" || echo "au revoir"
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
#9 Le 22/06/2012, à 23:25
- philoup44
Re : condition if
Salut
Moi aussi j'essai d'apprendre le "shell"
j'ai trouvé ce site (pour les caractères spéciaux voir Chapitre 3.)
et pour le caractère < , aller à la rubrique redirection
qui amène à -----> opérateurs de comparaisons d'entiers
voir ici
bonne lecture
Dernière modification par philoup44 (Le 22/06/2012, à 23:26)
Hors ligne
#10 Le 23/06/2012, à 15:10
- dzecniv
Re : condition if
Salut,
comme l'a dit Bousky, c'est une commande, donc il faut mettre des espaces. En fait, [ ] est le raccourci pour la commande "test".
tu peux voir man test.
On peut écrire ton expression comme ça aussi, mais c'est mieux avec les [ ] :
if test $test -lt $num ; then echo "coucou"; else echo "au revoir"; fi
donc il faut faire gaffe lorsqu'on nomme un fichier "test" ...
Bref : des espaces !
Hors ligne
Pages : 1