|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : février 2008 Messages : 12 ![]() |
Bonjour à tous
aujourd'hui j'ai un petit problème au niveau de mon script lorsque à la fin de mes actions je supprime mes fichiers temporaires il ne supprime pas tout en effet la fonction rmfile s execute correctement certains fichiers sont éffacés mais pas tous... Avez vous une idée de ce qui pourrait causer cela ? Car selon mon script les fichiers sources commençant par ${code} devraient tous etre éffacé ce qui ne st pas le cas. Code :
|
||
|
|
10
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 072 ![]() |
Bonjour,
la solution est pourtant simple : ne crée pas de fichiers temporaires ! et pour ce faire, n'utilise pas (JAMAIS ! ) la commande ls dans un script. tu peux remplacer ces fichiers par un tableau, qui sera réinitialisé à la place d'écrire un fichTemp. et tu remplaceras avantageusement les if [ "$code" =, par un |
|
|
20
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : février 2008 Messages : 12 ![]() |
Et tu peux me dire pour quelle raison cela se comporte de cette manière ?
Est-il possible de résoudre cela sans réécrire le code ? Car à l a base les fichiers sources arrivent assez librement cela peut etre 1000 fichiers de quelques ko mais qui n arrivent pas en meme temps Donc voilà pourquoi je fais un test -s sur le fichier qui est créé car il se peut qu entre 2 run des nouveau fichiers arrivent et je ne voudrais pas qu'il retraite des fichiers déjà traités et ou supprimer des fichiers non traités c est pourquoi j'ai travaillé comme cela et Je suis consciens que cela ne st pas très propre |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 072 ![]() |
ton script me donne mal à la tête, à force de relire les mêmes commandes mal foutues; des tests ± utiles, des echo comme dans DOS...
par où commencer ? tout réécrire, peut-être en revoyant l'algo (imagine-toi le faire "à la main"), et en n'utilisant que des commandes internes. Citation:
une boucle for code in $appcd, qui appelle une fonction comportant ce même code, ça va poser problème. -- je ne vais/peux pas réparer une fuite, quand le bateau prend l'eau de toutes parts. |
|
|
|
20
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : février 2008 Messages : 12 ![]() |
Ok je comprends mais si je mets mes fichiers dans un array n'y a t-il pas une limite au niveau du kernel qui t'empeche de faire un array plus grand que 1024 éléments ?
|
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 072 ![]() |
pas que j'ai observé :
Code :
|
||
|
|
10
|
|
|
#7 | ||||||||
|
Expert Confirmé Sénior
![]() Frédéric Ingénieur développement logiciels Inscription : février 2006 Messages : 3 055 ![]() |
Citation:
En dehors des remarques de N_BaH (de mon coté je ne refuse pas forcément de mettre du "ls" dans un script (parce que moi je sais le gérer ) mais je cautionne à 100% la nécessité d'éviter les fichiers temporaires autant que possible), je suis étonné par cette indentation de m... Es-tu obligée de décaler tes blocs aussi aléatoirement ???Tiens, juste un exemple Code bash :
Le premier bloc while n'est pas décalé, le second bloc for est décalé deux fois, le second if pas au même niveau que le premier. Franchement tu trouves ce code lisible ? Tu crois que tu vas le relire facilement ? Et que les autres vont le lire et le comprendre facilement ??? Ecrire aussi mal laisse penser que t'en as rien à cirer de ton travail et ne nous donne donc pas envie de nous y intéresser... Code bash :
Autre question: ces chmod 777, c'est parce que tu ne connais rien aux droits Unix ou bien que tu as la flemme de réfléchir sur la meilleure façon de les optimiser (tout en conservant la confidentialité qui va bien) ??? Accessoirement, tu te plains que le "rm" ne fonctionne pas mais il faut savoir que la réussite du rm sur un fichier ne dépend que des droits du répertoire qui contient le fichier et non des droits du fichier lui-même. Donc ton fichier peut être en 000, si les droits du répertoire sont suffisants le fichier est quand-même effaçable. Et inversement le fichier peut être en 777, si les droits du répertoire ne sont pas suffisants le fichier ne pourra jamais être effacé. Citation:
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit. Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant. Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation. Dr. Adrian Rogers, 1931 |
||||||||
|
|
10
|
Copyright © 2000-2012 - www.developpez.com