Bonsoir,
Il y a quelque jour, j'ai voulu créer un réveil pour linux en script shell. C'est mon premier vrai script, il n'est donc sûrement pas très optimisé :
Le code fonctionne bien si on le lance dans un terminal, mais ce n'était pas le but en utilisant zenity, je voulais créer un lanceur sur le bureau ( linux mint cinnamon ). Mais le sudo m'empêche exécuter la partie la plus importante du script. Il faudrait donc soit que je demande le mot de passe à chaque fois avec zenity, soit, si c'est possible au niveau sécurité, de ne pas demander le mdp. Dans les deux cas je ne sais pas comment faire, et je n'ai rien trouvé de satisfaisant sur internet, donc si vous avez des idées, je suis preneur...Code:#!/bin/sh #On demande l'heure du réveil heureCorrecte=False minuteCorrecte=False if heureReveil=$(zenity --entry --title="À quelle heure sera le réveil ?" \ --text="Heure(s) :" 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 \ 17 18 19 20 21 22 23 ) then heure=$heureReveil for elt in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 \ 15 16 17 18 19 20 21 22 23 do if [ $heure = $elt ] then heureCorrecte=True fi done fi if minuteReveil=$(zenity --entry --title="À quelle heure sera le réveil ?" \ --text="Minute(s) :" 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 \ 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 \ 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59) then minute=$minuteReveil for elt in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 \ 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 \ 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 do if [ $minute = $elt ] then minuteCorrecte=True fi done fi if [ $minuteCorrecte != "True" ] || [ $heureCorrecte != "True" ] then zenity --info --text="<span color=\"red\">L'heure entrée n'est pas \ correcte</span>" exit fi #On demande le jour du réveil jour=`zenity --entry --title="Jour" \ --text="Quel jour voulez vous vous réveiller ?" \ "Demain" "Aujourd'hui"` if [ $jour ] then if [ $jour != "Demain" ] && [ $jour != "Aujourd'hui" ] then zenity --info --text "Non !!" exit fi else zenity --info --text "Il fallait entrer un jour !" exit fi if [ $jour = "Demain" ] then jourExecution="tomorrow" else jourExecution="today" fi # On demande le répertoire de musique musiqueDir="/home/loftyramitsu/Musique" zenity --question \ --title "Dossier" \ --text "Voulez vous changer le répertoire de musique ? Actuellement : <b>$musiqueDir</b>" if [ $? = 0 ] then musiqueDir=$(zenity --file-selection \ --title="Choisissez le dossier de musique" \ --directory); fi # On demande si on peut lancer le réveil zenity --question \ --title="Confirmation" \ --text "Lancer le réveil maintenant ? \ (<i>L'ordinateur va passer en veille</i>)" if [ $? = 0 ] then sudo rtcwake -m mem -l -t $(date +%s -d "$jourExecution $heure:$minute") \ && mocp -S && mocp -c && mocp -o s && mocp -a $musiqueDir \ && mocp -p else zenity --info --text "Bon, tant pis ..." exit fi zenity --info --text "Arrêter le réveil ?" mocp -x exit
Merci d'avance.
-----