#1 Le 31/07/2012, à 08:52
- DonutMan75
[Résolu] Test logique sur valeurs numériques
Bonjour,
j'ai un soucis avec les tests logiques en script shell
Pouvez-vous me dire pourquoi :
$ [ 11 -lt 3 ]; echo $?
1
marche bien,
alors que :
$[ 11 -lt 1 ]; echo $?
[ 11 : commande introuvable
127
renvoie une erreur ????
Je suis très perplexe
J'utilise bash.
Merci d'avance
Dernière modification par DonutMan75 (Le 17/09/2012, à 17:21)
Hors ligne
#2 Le 31/07/2012, à 09:00
- DonutMan75
Re : [Résolu] Test logique sur valeurs numériques
Bon je viens de trouver,
les espaces sont nécessaires à l'intérieur des crochets : [ *ici* 11 -lt 1 *ici* ]
Ils y étaient bien mais j'ai effacé et remis un espace (pour être sûr) et là ça a marché...
Je ne comprends absolument pas, les espaces étaient pourtant bien là.....
Quelqu'un a une idée de ce qui a bien pu se passer ?
Hors ligne
#3 Le 31/07/2012, à 09:05
- nesthib
Re : [Résolu] Test logique sur valeurs numériques
As-tu copié-collé ces lignes ?
Typiquement ce genre d'erreur apparaît quand tu oublies des espaces. Par exemple en lançant :
[11 -lt 1]
Dans ton exemple il y a bien un espace après « [ », mais pas avant. Or, a priori, il n'est pas possible de supprimer l'espace juste après ton prompt (le « $ »). As-tu le même problème si tu lances bash avec l'option « --norc » ?
edit : vu que tu as posté entre temps… essaie ma solution de lancer bash sans fichiers de configuration :
bash --norc
si tu n'as plus le problème cela vient peut être d'une configuration que tu as modifiée, au hasard ton prompt (PS1) ?
Au vu de ton copié/collé ça pourrait bien être ça. Si tu as modifié cette variable, poste ta modification.
Dernière modification par nesthib (Le 31/07/2012, à 09:07)
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#4 Le 31/07/2012, à 09:07
- pingouinux
Re : [Résolu] Test logique sur valeurs numériques
Bonjour,
Je pense qu'il s'agissait d'un caractère invisible (genre espace insécable…).
Si tu retrouves la commande dans l'history, lancer dans un terminal :
xxd <<<"!numéro_de_la_commande"
Hors ligne