Pomocny program, można go dodać np. do nautilus-actions. Ładne okienko ułatwi i uprzyjemni całą sprawę. Przykład użycia: gtocacp mplayer /katalog/plik. Po zakończeniu się mplayera zostanie wyświetlone okienko w gtk2 odliczające od 60 sekund w dół z 1 sekundową częstotliwością odświeżania pasku postępu oraz informacji pisemnej.
Wymagania: komputer z systemem Linux/BSD oraz program zenity.
#!/bin/bash
#Autor: 3ED
shutdown_command="sudo shutdown -h now" #1
#cancel_command="recordmydesktop $HOME/out.ogg" # ;-)
if [ -z "$@" ];then #2
echo "gtocacp wersja 0.2.1; Publiczna domena."
echo "·······································"
echo "Przykład użycia: $0 mplayer /path/to/video"
echo
if [ x$LANG != x"pl_PL.UTF-8" ]; then
echo "(uwaga, kodowanie inne niz UTF8)"; fi
exit 0
fi
"$@" #3
[[ "$?" = 127 ]] && exit 1 #4
( #5
loop=60
until [ $loop = 0 ]; do let loop--
sleep 1s
echo "$[100-${loop}*100/60]"
echo "# Zostało $loop sekund zanim zostanie wyłączony komputer.."
done
) |
zenity --progress \ #6
--title="Wyłącznik czasowy komputera" \
--text="Zostało 60 sekund zanim zostanie wyłączony komputer.." \
--percentage=0 --auto-close && $shutdown_command #7
Opis (raczej dla newbie):
- Polecenie które zostanie wykonane po zakończeniu odliczania (oczywiście w zmiennej)
- Tekst gdy nic nie wpiszemy jako parametr.. ("-z" - puste?)
- Nasz parametr czyli polecenie do wykonania
- Gdy polecenie zwróci kod 127 skrypt przerwie z kodem 1
- Pętla odliczająca 60 razy po 1 sekundzie po czym jest kończona i przerywa zenity
- progress - typ okna; title - tytuł okna; tekst - tekst w okienku na start; procentage - od ilu procent pasek postępu zaczyna; auto-close - patrz punkt 5.
- Gdy zenity nie zostanie przerwane czyli doliczy do stówki i samo się zamknie zwróci kod 0 czyli po "&&" polecenie zostanie wykonane, gdy klikniesz na anuluj program zwróci kod 1 czyli polecenie po "||" uruchomi się. Np. recordmydesktop - gdyby ktoś chciał coś popatrzeć gdy śpimy to można go nagrać..
Jak widać jest to bardzo prosty skrypt, mam nadzieję że komuś pomogłem, a nawet zachęciłem do konsoli. Myślę nad publikacją większej ilości skryptów i o wiele dłuższych - skomplikowanych ale tutaj? Może jakiś inne miejsce? Co proponujecie?
1 | -5tan
26 września 2007, 23:59:35
Całkiem ciekawy skrypt. Śmiało dawaj więcej. :)