Skip to content

Instantly share code, notes, and snippets.

@Hullaballo2001
Created September 24, 2021 15:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Hullaballo2001/698872f471646dfcf8f370903115713a to your computer and use it in GitHub Desktop.
Save Hullaballo2001/698872f471646dfcf8f370903115713a to your computer and use it in GitHub Desktop.
AnSo_sauvegarde.sh
# Création d'un script de sauvegarde
# - Le script demande quel dossier l'utilisateur souhaite sauvegarder
# - Si le dossier n'existe pas, il affiche un message d'erreur
# - Le script demande ou sauvegarder le fichier
# - Le script demande la confirmation de sauvegarder à l'endroit choisit
# - Le script affiche un message quand la sauvegarde est correctement effectué
# - Le script demande si l'utilisateur veux sauvegarder un autre dossier
#
#!/bin/bash
flag_boucle="1"
flag_dossier=null
flag_chemin=null
flag_copie=null
onyva=null
recommence=null
reponse=null
reponse2=null
# on entre dans la boucle
while [ $flag_boucle != "0" ]
do
# - Le script demande quel dossier l'utilisateur souhaite sauvegarder
echo "Quel dossier souhaitez-vous sauvegarder ?"
read dossier
test -d $dossier #vrai si l'objet désigné par $FILE est un répertoire dans le répertoire courant,
flag_dossier=$?
# - Si le dossier n'existe pas, il affiche un message d'erreur
if test $flag_dossier != "0"
then
echo "Ce dossier n'existe pas dans le répertoire courant/n'est pas un dossier"
else # - Le script demande ou sauvegarder le fichier
flag_chemin="1"
while [ $flag_chemin != "0" ] # on rentre dans la 2de boucle
do
echo "Où souhaitez-vous sauvegarder ce dossier (chemin complet) ?"
read chemin
[ -d $chemin -a -w $chemin ] # -a = AND si c un dossier et que je peux ecrire dedans
flag_chemin=$?
if [ $flag_chemin != "0" ]
then
echo "Ce chemin n'est pas valide"
fi
done
# onyva=" "
while [ $onyva = null ]
do
# - Le script demande la confirmation de sauvegarder à l'endroit choisit
echo "Veuillez confirmer la sauvegarde de $dossier dans $chemin (O/N)"
read reponse
case $reponse in
[Oo] ) onyva="oui"
;;
[Nn] ) onyva="non"
break #remonter d'un cran et demander quel dossier sauvegarder au lieu de sortir complétement
;;
*) echo "Veuillez saisir "O" ou "N""
esac
done
if [ $onyva = "oui" ]
then
cp -r $dossier $chemin
flag_copie=$?
if [ $flag_copie != "0" ]
then
echo "problème lors de la copie"
else
echo "La sauvegarde s'est correctement effectuée"
# recommence=" "
while [ $recommence = null ]
do
echo "Voulez-vous sauvegarder un autre dossier ? (O/N)"
read reponse2
case $reponse2 in
[Oo] ) recommence="oui"
;;
[Nn] ) recommence="non"
exit
;;
*) echo "Veuillez saisir "O" ou "N""
esac
done
if [ $recommence = "oui" ]
then #back to ligne 20 par un break ?
break
else
flag_boucle="0"
fi
fi
else #back to ligne 20 par un break
break
fi
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment