version démilitarisée (l'extinction est commentée dans la fonction éteindre)

#!/bin/bash
# ----------------------------------------------
nomlogiciel="${0##*/}" # vous pouvez commenter cette ligne
echo "lancement $nomlogiciel..." # vous pouvez commenter cette ligne
VERSION="0.001"
by="kholo 2017"
# NOTES DE VERSIONS
# 
# ----------------------------------------------

pasToutDeSuite=6		# temps par defaut avant de reposer la question
defautTemps=7			# sans confirmation exécution dans x secondes
leTemps=(0 60 120 180 240 300) # liste de choix dans Entry
maForm=0

FONCTION="ce script permet d'arrêter une machine avec inter-action
par défaut il arrête le système après $defautTemps secondes
en cas d'annulation, il ouvrira une fenetre pour choisir le temps avant de se relancer
on peut taper off pour arrêter ce script ou un temps en secondes
en cas d'échappement le script sera relancé automatiquement au bout de $pasToutDeSuite secondes

NB : vous pouvez tester ce script sans modification
cette version est sécurisée en ne faisant qu'afficher une boite de dialogue au lieu d'arrêter réellement le PC
"

# #attention ces functions peuvent éteindre l'ordinateur
function Eteindre_avec_Dbus () {
	dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
	}
function Eteindre_avec_Systemctl () {
	# #A partir de 16.04 avec Systemctl (peut être 15.10 voire 15.04)
	# avec Systemctl
	systemctl poweroff
	}
function Eteindre () {
	# Pour activer ce script commenter zenity et choisir une façon d'éteindre
	zenity --info --text="Eteindre"
	# Adapter en fonction du système
	# Eteindre_avec_Dbus &
	# Eteindre_avec_Systemctl &
	# sleep 1 # pour laisser le temps au script
	exit 0
	}
function form () {
	zenity --entry --title "Extinction dans $defautTemps secondes" \
	--text "Temps en secondes avant extinction \noff pour arrêter ce script" \
	--entry-text "${leTemps[@]}"

	#Si on clique sur le bouton Annuler
	if [ "$?" -eq 1 ]; then
		echo -1
		exit 0
	fi
	}

for (( i=0 ; i<=$defautTemps ; i++ )); do
	pourcent=$(( i * 100 / $defautTemps ))
	echo "$pourcent"
	sleep 1
	shift

# echanger ces lignes pour la version finale
done  | zenity --progress --text="$FONCTION" --percentage=0 --auto-close

if [ "$?" -eq 1 ]; then
	maForm="$(form)"
fi

case $maForm in
	-1 ) 	sleep $pasToutDeSuite # temps par defaut avant de reposer la question
			./"$0" # se relance lui même
			exit 0 
			;;
	off )	exit 0 ;; # quitter ce script
	0 )		Eteindre ;;
	* )		sleep $maForm
			./"$0" # se relance lui même
			;;
esac

exit 0