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

 


Dernière réponse
Sujet : [bash] question sur la portée des variables
asphro oki ben essaye set -x au niveau de cette partie
tu comprendra peut etre pourquoi ca merde si ca merd eencore

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
asphro oki ben essaye set -x au niveau de cette partie
tu comprendra peut etre pourquoi ca merde si ca merd eencore
ayachi au fait merci pour les réponses :)
ayachi c'est une partie d'un script qui sert à jeter des fichiers dans une corbeille, mais si le fichier y est déjà on doit alors mettre une version, par exemple saferm f1 puis saferm f1,
dans la corbeille y'aura f1=0 et f1=1. Cette partie sert à trouver la version à mettre au fichier voilà
asphro je comprend pas ton script mais fou un set -x  apres ton i=0 pour vois ce q il fais  
mais serieux je comprend po du tout ton script genre expr etc exprca marche que pour le numerique
gfive A mon avis, le problème vient du pipe...Parce que ça ouvre un nouveau processus...
 
Essaie en faisant  
"export i=0"
 
 
Et sinon, je ne saurait trop te conseiller de faire :
 
for rep in `/bin/ls qqch/*`
do
 
a la place de  
 
ls qqch/* | while read rep
do
 
(le /bin/ls est là parce qu'avec les ls couleur, tu as parfois des caractères parasites dans la sortie de ls)
ayachi y'a vraiment aucun spécialiste du shell unix dans le coin, c'est pas possible ???!!
ayachi

Tentacle a écrit a écrit :

 
 
c'est quand même bizarre ... as-tu vérifié que ton script passait bien à l'endroit où il change la valeur de i ?  




 
ouais j'ai bien regardé ça y passe, il fait comme si c'était deux variables différentes.
 
pas de pro du bash dans le coin pour m'aider, please :cry:

Tentacle

ayachi a écrit a écrit :

 
 
je sais mais je veux une solution générale pour le cas où je ne peux pas faire autrement  




 
c'est quand même bizarre ... as-tu vérifié que ton script passait bien à l'endroit où il change la valeur de i ?

ayachi

Tentacle a écrit a écrit :

 
 
méthode à la con, tu balances le ls dans un fichier et tu le lis ensuite :)
 
sinon il doit bien y avoir un moyen d'utiliser une variable système/globale (je sais plus comment ça s'appelle)  




 
je sais mais je veux une solution générale pour le cas où je ne peux pas faire autrement

Tentacle

ayachi a écrit a écrit :

le problème est que si i à la fin du while vaut 2 et bien
après il reste à 0
j'ai cru comprendre que c'est une histoire de process fils dans lequel le 2ieme i défini ne touche pas au premier i.
comment on fait svp pour référencer le même i ?  




 
méthode à la con, tu balances le ls dans un fichier et tu le lis ensuite :)
 
sinon il doit bien y avoir un moyen d'utiliser une variable système/globale (je sais plus comment ça s'appelle)

ayachi voilà j'écris ça
i=0
ls qqch/* | while read rep
            do
               j=`expr etc`
               if [ $i -lt $j ]
               then i=`expr $j + 1`
               fi
            done
 
le problème est que si i à la fin du while vaut 2 et bien
après il reste à 0
j'ai cru comprendre que c'est une histoire de process fils dans lequel le 2ieme i défini ne touche pas au premier i.
comment on fait svp pour référencer le même i ?

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