Ça fait déjà plusieurs fois que l'on me demande comment faire un script bash conditionné (Je lance donc ce sujet, afin de renvoyer les intéressés sur le forum pour gagner du temps … et peut-être des utilisateurs !). Un schéma étant souvent plus efficace qu'un long discour, voilà donc un exemple de script :
#!/bin/sh
while [ -n "$1" ]; do # while loop starts
case "$1" in
-h) echo "-h Affichage de l’aide"
echo "-r Redémarrage après mise à jour"
echo "-p Extinction après mise à jour"
exit 1 ;;
-r) sudo apt -y update && sudo apt -y full-upgrade && sudo apt -y autoremove --purge && sudo apt -y clean && sudo apt -y autoclean && sudo reboot ;; # Redémarrage en fin de script
-p) sudo apt -y update && sudo apt -y full-upgrade && sudo apt -y autoremove --purge && sudo apt -y clean && sudo apt -y autoclean && sudo poweroff ;; # Extinction en fin de script
*)
esac
shift
done
sudo apt -y update && sudo apt -y full-upgrade && sudo apt -y autoremove --purge && sudo apt -y clean && sudo apt -y autoclean
Ce dernier permet de lancer la mise à jour complète de votre système, ainsi que son nettoyage (sur système Debian ou dérivés comme Ubuntu, linux Mint etc.)
Pour l’utiliser, je l’ai enregistré dans un fichier texte sous le nom de xupdate (X pour XFCE, inutile d’avoir l’esprit mal tourné !).
Ensuite vous pouvez le rendre exécutable et le mettre dans le répertoire « bin » de votre dossier personnel, ou le lancer en tapant sh xupdate.
Vous pouver le lancer suivi de d’une des 3 options suivantes :
-h pour help (affichage de l’aide)
-r pour reboot (Redémarrage après mise à jour)
-p pour poweroff (Extinction de votre PC après mise à jour)
Exemple : sh xupdate -r
Quelques explications :
#!/bin/sh
Ligne qui définit ce fichier texte comme un script bash
while [ -n "$1" ]; do
Démarrage de la boucle conditionnelle
case "$1" in
Définitions des « cas », ou plus simplement liste des options.
-h) echo "-h or --help Affichage de l’aide"
echo "-r Redémarrage après mise à jour"
echo "-p Extinction après mise à jour"
Si l’option est -h, afficher les textes suivants
exit 1 ;;
Stop la boucle et sort du script (ne pas ouclier les 2 ;; en fin de défintion d’une option)
-r) sudo apt -y update && sudo apt -y full-upgrade && sudo apt -y autoremove --purge && sudo apt -y clean && sudo apt -y autoclean && sudo reboot ;;
Si l’option est -r, lancer la commande qui permet la mise à jour du système, son nettoyage et son redémarrage (exit 1 n’est pas nécessaire puisque le PC va redémarrer et donc arrêter le script)
-p) sudo apt -y update && sudo apt -y full-upgrade && sudo apt -y autoremove --purge && sudo apt -y clean && sudo apt -y autoclean && sudo poweroff ;;
Si l’option est -p, lancer la commande qui permet la mise à jour du système, son nettoyage et son Extinction (exit 1 n’est pas nécessaire puisque le PC va s’éteindre)
*)
esac
shift
done
Arguments récurrents de fin de boucle
sudo apt -y update && sudo apt -y full-upgrade && sudo apt -y autoremove --purge && sudo apt -y clean && sudo apt -y autoclean
Lance cette commande si aucune option n’a été sélectionnée.