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

J'utilise bash.

Merci d'avance smile

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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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