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

  FORUM HardWare.fr
  Programmation

  [Bourne-shell] Substitution dans une variable d'environnement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Bourne-shell] Substitution dans une variable d'environnement

n°32044
BifaceMcLe​OD
The HighGlandeur
Posté le 16-05-2001 à 01:20:14  profilanswer
 

Mon problème est le suivant.
 
Un petit programme en shell, entouré de tous ses fichiers de données, se trouve dans un répertoire source (-contrôlé). Pour l'exécuter, on copie tout ce petit monde dans un répertoire destination (de façon automatique), on le lance, il crée tout plein de fichiers de sortie, et à la fin je veux nettoyer le répertoire destination pour ne garder que les fichiers créés par le programme. Ou, si vous préférez, supprimer du répertoire destination tous les fichiers qui se trouveaient déjà dans le répertoire source.
 
J'ai les variables suivantes:
   $dir_indir   -> Le répertoire de base source.
   $dir_outdir -> Le répertoire de base destination.
   $dir           -> Le chemin relatif du programme et de ses fichiers de données dans le répertoire de base -- que ce soit dans la source ou, une fois copiés, dans la destination.
 
Exemple:
Mon programme et ses fichiers de données sont dans j:/dveTest/jbsearch/SearchSimple/, et le programme est exécuté dans j:/testLog/jbsearch/SearchSimple/. J'ai alors:
   $dir_indir   = j:/dveTest
   $dir_outdir = j:/testLog
   $dir          = jbsearch/SearchSimple
 
J'ai réussi à écrire ce que je veux faire en Korn-shell :

Code :
  1. for dir_file in `find $dir_indir/$dir/ -type f`; do
  2.       echo "/bin/rm -f ${dir_file/'"$dir_indir"'/'"$dir_outdir"'}"
  3.   done


 
mais ce type de substitution ne marche pas en shell de Bourne (car c'est du pur Korn-shell) et ce dernier m'est imposé. Help !
 
J'ai essayé de faire la substitution de la valeur de $dir_indir par celle de $dir_outdir avec un sed (un truc du genre "sed -e 's/$dir_indir/$dir_outdir/g'" ), mais le problème, c'est qu'il y un mélange entre les slashs contenus dans les variables d'environnement est ceux de sed.
 
PS: Dans la boucle shell ci-dessus, si vous connaissez un moyen d'extraire $dir_indir de $dir_file, et d'obtenir le chemin relatif du fichier $dir_file, ça me va aussi. $dir_outdir est mon répertoire courant à ce moment-là...

 

[edit]--Message édité par BifaceMcLeOD--[/edit]

mood
Publicité
Posté le 16-05-2001 à 01:20:14  profilanswer
 

n°32046
BifaceMcLe​OD
The HighGlandeur
Posté le 16-05-2001 à 04:01:56  profilanswer
 

Merci à tous les lecteurs, j'ai trouvé.

Code :
  1. for dir_file in `find ${dir_indir}/${dir}/ -type f`; do
  2.       outdir_file=`echo ${dir_file} | sed -e 's#'${dir_indir}'#'${dir_outdir}'#g'`
  3.       echo "/bin/rm -f ${outdir_file}"
  4.   done

n°32048
JWhy
je peux plier (héhé)
Posté le 16-05-2001 à 04:26:12  profilanswer
 

pov' Biface... la seule fois ou il pose une question, personne ne lui répond :(
;)


---------------
www.alliancefrancophone.org ... Home is where the heart is
n°32063
Fred999
Rabat-joie
Posté le 16-05-2001 à 09:27:57  profilanswer
 

Faut dire que passer d'un shell Unix à un autre, c'est plutôt la misère.

n°32106
AirBg
The Philosopher
Posté le 16-05-2001 à 10:55:32  profilanswer
 

Ca c'est clair, moi je suis passé d'un korn shell Unix au bash Linux j'ai trop galéré :)


---------------
"There's not such a thing as a stupid question, only stupid people..."

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Bourne-shell] Substitution dans une variable d'environnement

 

Sujets relatifs
[ Shell ] tableau ?[Shell] COmment supprimer une ligne avec sed ?
Probleme de shell !!!!! Help dans la soirée svp ....commande shell en access vba
[PHP-XML] Parser une variable à la place d'un fichier?variable asp dans SQL :: concatenation!!
[Linux] script shell[PERL] '&' devant variable
PHP et déclaration de variable[VC++] comment stocker NaN dans une variable
Plus de sujets relatifs à : [Bourne-shell] Substitution dans une variable d'environnement


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