Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2676 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [bash] Vérifier la version des outils dans un script

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[bash] Vérifier la version des outils dans un script

n°1182320
le fou
Forza Massallia
Posté le 27-11-2009 à 15:33:31  profilanswer
 

Bonjour,
 
Suite à mes précédents messages (et je remercie au passage les forumers qui m'ont aidés par leur réponse), j'ai encore besoin d'une petite aide:
 
Au débute de mon script je vérifie la présence des outils dont je me sers. Cela fonctionne très bien. Mais j'aimerais augmenter la force de la chose, en contrôlant également la version du logiciel.  
 
Pour ce faire, je voulais  faire  


sed --version | head -1 | awk  '{print $4}'


 
Mais aprés comment vérifie que la version présente est bien celle que je souhaite?


---------------
Celui qui sauve une vie, sauve l'humanité (Le Talmud) - Personne n'a plus grand amour que celui de donner sa vie pour ses amis (Jean XV, 13)
mood
Publicité
Posté le 27-11-2009 à 15:33:31  profilanswer
 

n°1182364
Fork Bomb
Obsédé textuel
Posté le 27-11-2009 à 18:14:05  profilanswer
 

#!/bin/bash
SED_VERSION=$(sed --version | head -1 | awk  '{print $4}')
if  [ "${SED_VERSION}" -eq "1.2.3.4" ]
then
echo "C'est la bonne version \o/"
else
echo "C'est pas la bonne version :("
fi


 
Ca renvoie une erreur mais ca fait la comparaison quand même. Il doit pas y avoir grand chose a changer.


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°1182373
twocats
Posté le 27-11-2009 à 19:22:31  profilanswer
 

Citation :

SED_VERSION=$(sed --version | awk  '$3 ~ /version/ {print $4}')


Évitons les pipes inutiles.


---------------
La réponse est 42
n°1182961
le fou
Forza Massallia
Posté le 01-12-2009 à 13:20:45  profilanswer
 

Désolé pour le retard de ma réponse.
 
Merci à vous deux pour vos réponses. Elles m'aident beaucoup.
 
Cependant, le problème de ce script est qu'il vérifie si une version est installé et non pas si une version minimal est installé. Or, et dans l'absolu, j'aurais voulue la deuxième option, mais j'ai peur que cela rende la chose plus compliqué.


---------------
Celui qui sauve une vie, sauve l'humanité (Le Talmud) - Personne n'a plus grand amour que celui de donner sa vie pour ses amis (Jean XV, 13)
n°1183041
zecrazytux
Posté le 01-12-2009 à 17:31:36  profilanswer
 

s/-eq/-ge/ ?


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
n°1183105
le fou
Forza Massallia
Posté le 02-12-2009 à 09:12:39  profilanswer
 

Bonjour,
 
alors j'ai essayé. mais cela pose un problème lors de l'utilisation de la commande -eq (ou -ge) car les variables ne contiennent pas que des chiffres (par ex. 4.1.5).
 
Je peut comparer la valeur de deux chaines , mais, pour l'instant, ne pas savoir si une version minimal est présente.


---------------
Celui qui sauve une vie, sauve l'humanité (Le Talmud) - Personne n'a plus grand amour que celui de donner sa vie pour ses amis (Jean XV, 13)
n°1183142
Fork Bomb
Obsédé textuel
Posté le 02-12-2009 à 11:11:05  profilanswer
 

Remplace "-eq" (equal) par "-ge" (greater or equal) dans mon mini script


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°1183225
le fou
Forza Massallia
Posté le 02-12-2009 à 14:09:37  profilanswer
 

Voila le message que j'obtiens :


/usr/bin/test: line 428: [: 4.1.5: integer expression expected
C'est pas la bonne version :(


 
Que ce soit en utilisant -eq ou -ge


---------------
Celui qui sauve une vie, sauve l'humanité (Le Talmud) - Personne n'a plus grand amour que celui de donner sa vie pour ses amis (Jean XV, 13)
n°1183248
Fork Bomb
Obsédé textuel
Posté le 02-12-2009 à 14:30:10  profilanswer
 

#!/bin/bash
SED_VERSION=$(sed --version | head -1 | awk  '{print $4}')
if  [ "${SED_VERSION}"-ge"1.2.3.4" ]
then
echo "C'est la bonne version \o/"
else
echo "C'est pas la bonne version :("
fi


Ca, ça marche.


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°1183250
o'gure
Modérateur
Multi grognon de B_L
Posté le 02-12-2009 à 14:31:02  profilanswer
 

Et pourquoi ne pas passer par la version du package accessible via les commandes CLI du gestionnaire de packages  de ta distribution ?


---------------
Relax. Take a deep breath !
mood
Publicité
Posté le 02-12-2009 à 14:31:02  profilanswer
 

n°1183253
Tuxerman12
Posté le 02-12-2009 à 14:34:34  profilanswer
 

Essaie d'utiliser = , != , < , > pour voir si ça marche, c'est plus adapté aux chaines.
 
[ "1.2.3.4" \< "1.3.4.5" ]
 
http://www.ibm.com/developerworks/ [...] -test.html

n°1183288
le fou
Forza Massallia
Posté le 02-12-2009 à 16:29:13  profilanswer
 

Merci tuxerman. Ca marche mieux en utilisant les échappements et '>' ou '<'


---------------
Celui qui sauve une vie, sauve l'humanité (Le Talmud) - Personne n'a plus grand amour que celui de donner sa vie pour ses amis (Jean XV, 13)
n°1187852
sputnick
bip...bip...bip...bip...bi...b
Posté le 24-12-2009 à 01:04:34  profilanswer
 

échappements ?
comparateurs...
 
Je m'échappe...___>[]

n°1187883
Tuxerman12
Posté le 24-12-2009 à 09:31:49  profilanswer
 

Sans échappement ça passe pas [:spamafote] , par défaut <> sont utilisés comme redirecteurs dixit l'auteur de l'article que j'ai cité.


Message édité par Tuxerman12 le 24-12-2009 à 09:42:50

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [bash] Vérifier la version des outils dans un script

 

Sujets relatifs
[bash] Chercher deux lignes vides consécutivesVérifier si la derniére d'un fichier est une ligne vide
[bash] empilage de grepscript bash pour ftp
[bash] grep plusieurs pattern, et autres joyeusetés...Demande d'avis sur mon premier script Iptables
[bash] stats des fichiers par taillescript d'envois d'un fichier par mail
Plus de sujets relatifs à : [bash] Vérifier la version des outils dans un script


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR