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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Résolu] Test chaine de caractères avec Shell : Help !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Test chaine de caractères avec Shell : Help !

n°1147139
Adaron
Posté le 08-07-2009 à 10:32:51  profilanswer
 

Bonjour,
 
Je travaille sur un petit script qui a la charge de vérifier la présence de dossiers dans un autre dossier.
 
Récemment j'ai voulu l'améliorer mais je bloque sur un test de chaine de caractères...
 
En gros, le dossier principal dans lequel est fait le test se nomme "Transit", et peut contenir deux types de dossiers :
 
- des dossiers nommés "ENVOI_DU_date"
- et des dossiers ayant pour nom "A_SUPPRIMER_date" (en cas de problèmes)
 
Actuellement, que ce soit l'un ou l'autre, les deux types de dossiers sont traités de la même manière, et j'ai voulu modifier ça justement de façon à supprimer tous les A_SUPPRIMER sans les traiter.
 
Voilà comment je procède :
 

Code :
  1. cd /TEMP/Transit
  2. LISTDOS=`find . -mindepth 1 -maxdepth 1 -type d 2>/dev/null`
  3. NB_DOS=`find . -mindepth 1 -maxdepth 1 -type d 2>/dev/null | wc -l`
  4. date +%d/%m/%Y/%R >>/usr/local/bin/Suivi_OVH/OVH.log
  5. if [ $NB_DOS -gt 0 ]  #Si des dossiers sont présents
  6. then
  7.       for DOS in $LISTDOS
  8.       do
  9.          if [ $DOS = "A_SUPPRIMER_000000" ]  #c'est un dossier de test, les 000000 sont voulus pour que ce soit plus simple
  10.          then
  11.             for NB_DOS in $LISTDOS
  12.             do
  13.                echo "GRANDE Suppression du dossier $DOS" >>/usr/local/bin/Suivi_OVH/OVH.log
  14.                rm -rf $DOS
  15.                continue
  16.             done
  17. #Le if se termine plus loin


 
Voilà ce que j'essaie de faire, par contre j'ai l'impression que le script ne passe pas là dedans :

Code :
  1. if [ $DOS = "A_SUPPRIMER_000000" ]


 
Et du coup pour l'instant il ne fait pas de différence entre les dossiers "normaux" et ceux du type A_SUPPRIMER.  
 
Quelqu'un aurait-il une idée s'il vous plaît?
 
Je suis bloqué actuellement et j'ai fait plusieurs tests pas très concluants.
 
Peut-être que mes instructions ne sont pas tout à fait exactes?
 
J'apprécie toute aide !


Message édité par Adaron le 10-07-2009 à 12:02:50
mood
Publicité
Posté le 08-07-2009 à 10:32:51  profilanswer
 

n°1147427
Adaron
Posté le 09-07-2009 à 11:40:21  profilanswer
 

J'ai trouvé.
 
Le code :
 

Code :
  1. if [ $DOS = "A_SUPPRIMER_000000" ]


 
Est devenu :
 

Code :
  1. if [[ "${DOS}" =~ .*A_SUPPRIMER_000000$ ]]


 
Ca fonctionne :)


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

  [Résolu] Test chaine de caractères avec Shell : Help !

 

Sujets relatifs
Pas de vidéo fonctionnelle dans Skype. Mais ok dans amsn... [Résolu][résolu] WOW & Wine 1.1.25 .... Image à l'envers
supprimer les unité de distance (m et km) dans un csv [resolu]Recherche cours de Bourne Shell !
Module ndiswrapper not found : help, je suis perdu!Inverser les noms de deux partitions (Résolu)
[Résolu] Problème d'enregistrement local avec Kompozer[Résolu] iPod sous Ubuntu (en double dans gtkpod)
Recherche chaine dans un fichier texte avec script shell 
Plus de sujets relatifs à : [Résolu] Test chaine de caractères avec Shell : Help !


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