Comment utiliser les for((i=0;critere;i++)) [bash] - Shell/Batch - Programmation
Marsh Posté le 28-07-2004 à 10:40:26
weed a écrit : |
1ere chose : for n'accepte que des expressions arithmetique, donc ta comparaison de chaine le met dedans
2eme chose : ta bibouille pour voir si le fichier existe est un peu tordu voit plutôt cet extrai du man de test :
Citation : -e FILE |
Marsh Posté le 28-07-2004 à 10:50:06
bobuse a écrit : 1ere chose : for n'accepte que des expressions arithmetique, donc ta comparaison de chaine le met dedans |
je i pas le droit de faire uniquement des tests avec des nombres et non pas avec des chaines de caracteres ?
c'est bien ca ...
bon pas grave je vais faire un grep -c pour compter le nombre de correspondance et tester si ca vaut 1 ou 0
bobuse a écrit :
|
en fait c'est une liste de fichier recuperer sur un ftp avec ncftpls, donc je ne pense pas que ta solution soit bonne
Marsh Posté le 28-07-2004 à 10:52:53
weed a écrit : |
arf, ok !
L'info me manquait
Marsh Posté le 28-07-2004 à 10:53:29
et yoooooooooooooooooooooooo man tu es trop bobuse
tu es trop fort, je viens de faire un
Code :
|
et ca fonctionne
thxxxxxxxxx bobuse
Marsh Posté le 30-07-2004 à 00:00:35
grep -xq + test de la valeur de retour c'est mieux que grep -xc + comparaison de la sortie.
Marsh Posté le 28-07-2004 à 10:14:13
voila je bloque sur une boucle for à la C
explication :
echo "$file" => liste les fichiers par ligne
`echo "$file" | grep -x $newfile` => renvoie le fichier recherché. Si le fichier ne s'y trouve ca renvoie ""
on tape le nom du script avec comme 1er parametre le nom d'un fichier. Si le fichier n'existe pas dans le repertoire, $newfile prendra le nom de ce fichier à savoir $1 (j'ai fais un test avec un if pour ca). Mais si ce n'est pas le cas, on va alors essayer de trouver un nom de fichier qui n'existe pas encore et c'est le role de la boucle for. Pour generer un nouveau nom on insere un nombre juste avant le point de l'extenstion...
Exemple :
on 4 fichiers dans le repertoires ($file):
test.png
test1.png
test2.png
test3.png
et bien le fichier prendra comme nom :
echo $newfile => test4.png