nany a écritBonjour,
Il manque } quelque part.
Avec une indentation plus rigoureuse, tu t’en serais rendu compte.
Merci, oui je sais j'ai toujours de la peine avec l'indentation, des lien à me conseiller pour m'améliorer là-dessus ?
Watael a écritsalut,
la fonction n'est pas close, ou le script n'est collé en entier.
la fonction n'est pas appelée, ou le script n'est collé en entier. 😉
seq n'est pas indispensable :
fin=10
for ((i=1; i<=$fin; i++)); do : ...; done
le seq est là car j'ai simplement repris le code que j'avais d'un autre script, la partie 4 en réalité.
et flemme de tout retaper
MicP a écritBonjour
À moins que le script donné dans le message #1 ne soit une copie tronquée,
ajouter les deux lignes suivantes
à la fin du script :
}
fct_menu
merci, c'est ce qu'il manquait en effet.
Par contre le disclaimer n'étant plus visible, je dois l'ajouter à chaque option du menu si je suis bien la logique de la syntaxe et non au début du script comme je l'ai fait, ou y-a-t-il une solution pour moins charger le script ?
EDIT : j'ai trouvé, suffit de retirer le reset en début de fonction et le tour est joué
Voici le code avec une bien meilleure indentation
@nany
#!/bin/bash
#Variables
pc=$HOSTNAME
prog=clear-dd
date=$(date +"%d-%m-%Y")
log="/log/$pc/clear-dd_$date.log"
log_err="/log/$pc/errors/clear-dd_$date.log"
#Script
echo "$date Debut de $prog" >$log >$log_err
echo -e "Disclaimer : Vous vous apprétez à effacer totalement votre disque sans aucune récupération possible, faites attention au disque que vous avez choisis,\n je ne peut être tenu responsable d'éventuelles pertes de données"
fct_menu ()
{
echo
echo "Choisissez une option [1-4]"
echo
echo "1 : effacement simple (1 passage, rapide)"
echo "2 : effacement sécurisé (7 passages, long)"
echo "3 : effacement très sécurisé (35 passages, très long)"
echo "4 : effacement personnalisé"
echo "x : quitter"
echo -n "veuillez choisir :"
read optionmenu
case $optionmenu in
1)
echo
echo "lancement de l'option 1"
echo
read -p 'choix du disque (par exemple sda/hda/...) : ' SDX
for n in `seq 1`; do dd if=/dev/zero of=/dev/$SDX bs=8b conv=notrunc; done >>$log 2>>$log_err ;
for n in `seq 1`; do dd if=/dev/urandom of=/dev/$SDX bs=8b conv=notrunc; done >>$log 2>>$log_err ; fct_menu;;
2)
echo
echo "lancement de l'option 2"
echo
read -p 'choix du disque (par exemple sda/hda/...) : ' SDX
for n in `seq 7`; do dd if=/dev/zero of=/dev/$SDX bs=8b conv=notrunc; done >>$log 2>>$log_err ;
for n in `seq 7`; do dd if=/dev/urandom of=/dev/$SDX bs=8b conv=notrunc; done >>$log 2>>$log_err; fct_menu;;
3)
echo
echo "lancement de l'option 3"
echo
read -p 'choix du disque (par exemple sda/hda/...) : ' SDX
for n in `seq 35`; do dd if=/dev/zero of=/dev/$SDX bs=8b conv=notrunc; done >>$log 2>>$log_err ;
for n in `seq 35`; do dd if=/dev/urandom of=/dev/$SDX bs=8b conv=notrunc; done >>$log 2>>$log_err; fct_menu;;
4)
echo
echo "lancement de l'option 4"
echo
read -p 'choix du disque (par exemple sda/hda/...) : ' SDX
echo "choississez le nombre de passage"
read -p "nombre de passage : " B1
for n in `seq $B1`; do dd if=/dev/zero of=/dev/$SDX bs=8b conv=notrunc; done >>$log 2>>$log_err ;
for n in `seq $B1`; do dd if=/dev/urandom of=/dev/$SDX bs=8b conv=notrunc; done >>$log 2>>$log_err; fct_menu;;
x)
echo "fin de $prog" >>$log >>$log_err
exit;;
*)
echo
echo "erreur de frappe"
echo
fct_menu;;
esac
}
fct_menu