Script mecanisme corbeille

fischer -  
mamiemando Messages postés 34242 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
j'ai fais un script mecanisme corbeille sous ubuntu et je voudrais que quelqu'un me le corrige,mercci
#!/bin/bash

if ! test -d .trash

then

mkdir .trash

touch ./.trash/list

echo 0 > ./.trash/nbre_fichier

else

if ! test -f ./.trash/list

then

touch ./.trash/list

fi

if ! test -f ./.trash/nbre_fichier

then

echo 0 > ./.trash/nbre_fichier

fi

fi

# les options

case $1 in

# pour force

"-f")

for i in $*

do

rm $i

done

;;

# pour query

"-q")

cat listeff

;;

# pour restore

"-r")

nb='cat ./.trash/nbre_fichier'

i=0

for PAR in $*

do

if test -f $PAR

then

i=$(($i+1))

NEWFIC=$(($nb-$i))

mv ./.trash/$PAR ./

echo "'pwd'./.trash/$PAR file$NEWFIC Effacer" >> ./list

echo $NEWFIC > ./.trash/nbre_fichier

else

echo "impossible de supprimer le dossier $PAR"

fi

done

;;

# pour empty

"-e")

a=$(wc -l < list)

for i in $a

do

rm -rf ./.trash/file$i

done

rm ./.trash/list

rm ./.trash/nbre_fichier

;;

#Effacer un Répertoire et son contenu

"-c")

nb='cat ./.trash/nbre_fichier'

j=0

for k in $*

do

if test -d $k

then

j=$(($j+1))

n=$(($nb+$j))

mv $k ./.trash/file$n

echo "'pwd'/$k " >> listeff

echo "'pwd'/$k file$n" >> ./.trash/list

echo $n > ./.trash/nbre_fichier

fi

done

;;

# Mode normal(sans les options)

*)

nb='cat ./.trash/nbre_fichier'

i=0

for s in $*

do

if test -f $s

then

i=$(($i+1))

m=$(($nb+$i))

mv $s ./.trash/file$m

echo "'pwd'/$s file$m" >> ./.trash/list

echo "'pwd'/$s " >> listeff

echo $m > ./.trash/nbre_fichier

else

echo "impossible de supprimer le dossier $s"

fi

done

;;

esac

A voir également:

1 réponse

mamiemando Messages postés 34242 Date d'inscription   Statut Modérateur Dernière intervention   7 898
 
Le script étant beaucoup trop aérer et non indenté ça ne donne pas trop envie de le lire. Utilise les balises de codes (<> au dessus de la boîte dans laquelle tu tapes ton message) pour rendre le tout plus lisible.

Mais déjà,
- le répertoire de la poubelle devrait être ~/.local/share/Trash ou encore $HOME/.local/share/Trash,
- les noms de variables devraient faire plus d'une lettre pour qu'on ait une chance de comprendre le programme
- les messages d'erreur devraient écrits ainsi :

echo "message d'erreur" >&2


Bonne chance
0