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 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 smile

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