Bash Scripts
Guide specifiche
- Guida avanzata di Bash-Scripting (tradotto dal Pluto)
oppure l'originale in inglese Advanced Bash-Scripting Guide (di Mendel Cooper);
I miei script
| Nome script: | Linguaggio: | Descrizione: | ||
| my_arxiv | Bash | Effettua il backup di una directory creando un archivio e il checksum | ||
| my_backup | Bash | Effettua il backup della propria HOME | ||
| my_cddump | Bash | Estrae le tracce audio da un CD, convertendole in vari formati | ||
| my_find_double | Perl | Cerca file doppi ricorsivamente in una o più directory | ||
| my_mount_media | Bash | Tenta di montare il nuovo dispositivo inserito (pen-drive, hard-disk esterno, dvd, cdrom) | ||
| my_umount_media | Bash | Tenta di smontare uno o più dispositivi inseriti |
Oltre agli script in Bash, possono tornare utili le seguenti funzioni (che vanno inserite nel file ~/.bashrc).
my_batt_info(){
now=$(grep remaining `find /proc/acpi/battery -name state` | awk '{print $3}')
tot=$(grep "last full capacity" `find /proc/acpi/battery -name info` | awk '{print $4}')
echo $((now*100/tot))"%"
}
my_search_history(){
if [ -n "$1" ]; then
grep --colour -- "$1" ~/.bash_history
else
echo "Usage: my_search_history <word>"
return 1
fi
}
now=$(grep remaining `find /proc/acpi/battery -name state` | awk '{print $3}')
tot=$(grep "last full capacity" `find /proc/acpi/battery -name info` | awk '{print $4}')
echo $((now*100/tot))"%"
}
my_search_history(){
if [ -n "$1" ]; then
grep --colour -- "$1" ~/.bash_history
else
echo "Usage: my_search_history <word>"
return 1
fi
}
Le seguenti funzioni servono rispettivamente ad avviare e fermare un processo che aggiorna l'ora in alto a destra sul terminale:
my_start_clock(){
if [ -n "$clockd_pid" ]; then
echo "running!"
else
while true; do
yc=$((`tput cols`-10))
echo -en "\033[s\033[1;${yc}H\033[1;31m[`date +%H:%M:%S`]\033[0m\033[u"
sleep 1
done &
export clockd_pid=$!
fi
}
my_stop_clock(){
if [ -n "$clockd_pid" ]; then
kill -3 $clockd_pid
yc=$((`tput cols`-10))
echo -en "\033[s\033[1;${yc}H \033[u"
else
echo "not running!"
fi
unset clockd_pid
}
if [ -n "$clockd_pid" ]; then
echo "running!"
else
while true; do
yc=$((`tput cols`-10))
echo -en "\033[s\033[1;${yc}H\033[1;31m[`date +%H:%M:%S`]\033[0m\033[u"
sleep 1
done &
export clockd_pid=$!
fi
}
my_stop_clock(){
if [ -n "$clockd_pid" ]; then
kill -3 $clockd_pid
yc=$((`tput cols`-10))
echo -en "\033[s\033[1;${yc}H \033[u"
else
echo "not running!"
fi
unset clockd_pid
}