Pages : 1
#1 Le 10/02/2008, à 10:37
- Lenezir
[Résolu] Une bouche de Bash
Salut ^^
Je voudrais faire un petit programme mais malgré l'aide de sites, je n'y arrive pas.
Je vous explique mon cas.
J'ai dans un dossier, plus de 200 dossiers contenant des fichiers à supprimer (via shred).
Chaque dossier à un nom du type dossier1, dossier2, dossier3, ...
Alors voici ce que je voulais faire :
#!/bin/bash
$nb = 1
while [$nb<250] do
cd dossier$nb && shred -u -z -v * && cd ..
$nb++
done
echo "C'est fait !";
Qu'est-ce qui cloche svp ?
Merci
Dernière modification par Lenezir (Le 28/12/2009, à 18:39)
Hors ligne
#2 Le 10/02/2008, à 10:53
- lawl
Re : [Résolu] Une bouche de Bash
!/bin/bash
nb=1
while [ $nb -lt 5 ]
do
cd dossier$nb && shred -u -z -v * && cd ..
nb=$[nb+1]
done
echo "C'est fait !"
Ta du boulot !
Dernière modification par lawl (Le 10/02/2008, à 11:43)
Hors ligne
#3 Le 10/02/2008, à 11:52
- Alain.g
Re : [Résolu] Une bouche de Bash
Salut
Pas grand chose qui ne cloche pas en fait
- il ne faut as d'espace autour du signe égal pour les variables
- pour l'évaluation arithmétique, soit on utilise les crochets (avec espace) et les opérateurs "-lt, -le, -eq etc...), soit, en bash, des doubles parenthèses avec "<, =, etc..."
- ne pas oublier le point-virgule avant "do", ou un saut de ligne
- $i++ n'est pas bon. Soit "let i++", soit "((i++))", soit i=$(($i+1)) ...
Je te conseille de lire une introduction plutà´t que de te lancer à l'aveugle
En Bash, le plus simple serait d'utiliser une boucle for :
#!/bin/bash
for ((i=1;i<250;i++)) ; do
done
plus proche de ta syntaxe :
#!/bin/bash
i=1
while ((i<250)) ; do
let i++
done
en compatible sh & bash
#!/bin/sh
i=1
while [ $i -lt 250 ] ; do
i=$(($i+1))
done
Dernière modification par Alain.g (Le 10/02/2008, à 12:03)
Xubuntu Karmic !
Hors ligne
#4 Le 10/02/2008, à 12:44
- Lenezir
Re : [Résolu] Une bouche de Bash
Ça marche nickel merci beaucoup !!!
Hors ligne
Pages : 1