Newsgroup: it.comp.os.linux.debian
Titolo: Contatore per lo shutdown

Vorrei aggiungere un contatore allo script di spegnimento: 
/etc/acpi/powerbtn.sh in modo che per spegnere il computer il 
pulsante vada premuto tot volte (chesso' 5 o 6), una manovra 
"anti bimbo" diciamo :D
Ci vorrebbe un (la butto li'):
while "powerbutton pressed" counter=counter+1
if counter=5 then counter=0 | /sbin/shutdown -h now "Power 
button pressed 5 times"
Mi aiuttate a razionalizzarlo? Con gli script sono abbastanza 
niubbo...  >_<
-- 
Byez
_Briareos_
XboxLive Gamertag: Briareos X

 
Rinomini powerbtn.sh in powerbtn.sh.real, ed a posto  di powerbtn.sh ci 
metti lo script che segue (devi poi renderlo ovviamente eseguibile).
E` configurato per 5 pressioni con al massimo due secondi tra una 
pressione e la successiva (altrimenti ricomincia il conteggio), ma i 
commenti dovrebbero essere abbastanza chiari.
Nota: purtroppo (o per fortuna?) l'evento di pressione del powerbutton 
lo beccano anche altri, come ad esempio Gnome/gdm recenti, che 
visualizzano la relativa finestrella di logout sessione/shutdown.
---8<--------8<--------8<--------8<--------8<--------8<--------8<-----
#!/bin/sh
# We rely on GNU date here to print out
# the number of seconds since 1970-01-01 00:00:00 UTC,
# so we can do differences between times in seconds.
now=$(date +%s)
# This is how many times this script has to be called
# in order to perform its action.
max_count=5
# This is the maxium delay, in seconds, between each
# call.
max_delay=2
# This is the file where we park the data between each
# call to this script.
runfile=/var/run/multipress_shutdown
count=1
umask 066
if [ ! -f "${runfile}" ]; then
     # Initialize our file if it does not exist.
     echo "${now} 1" > "${runfile}"
fi
if [ -f "${runfile}" ]; then
     # Read from our file the last time this script
     # has been called, and the cumulative counter.
     read < "$runfile" last_time last_count
     if [ "$((now - last_time))" -le ${max_delay} ]; then
         # The time elapsed since we were called the
         # last time is not greater than the maximum
         # delay. So let's increment the counter
         # and update the file.
         count="$((last_count + 1))"
         echo "${now} ${count}" > "${runfile}"
     else
         # The time elapsed since we were called the last time is
         # greater than the maximum delay. So let's reset the counter
         # and update the file
         count=1
         echo "${now} ${count}" > "${runfile}"
     fi
fi
if [ "${count}" -ge "${max_count}" ]; then
     # If the counter reached the maximum value,
     # let's reset it and perform our action
     echo "${now} 0" > "${runfile}"
     #
     # Let's do our action.
     #
     /etc/acpi/powerbtn.sh.real
fi
---8<--------8<--------8<--------8<--------8<--------8<--------8<-----
-- 
  (\_/)   |   \    \  | ___|_   |_   |   /\/\  ianezz a casa sua... :-)
  (^.^)   |  _ \  | \ | _|     /    /   {^.^ } Verba volant, scripta
/(")(") _|_/  _\_|  _|____|____|____| (")(")\ manent, data corrupted

 ovviamente eseguibile). 
Sei un grande ianezz! Ti ringrazio tantissimo, e' proprio quello  
di cui avevo bisogno! Grazie del tempo che c'hai perso! :*
