Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 big_smile

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 !
tongue

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 big_smile

- 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 wink

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 !!! big_smile

Hors ligne