[Linux-Biella] script, bash etc...
Paul TT
linux@bilug.linux.it
Wed, 17 Sep 2003 15:33:46 +0200
CIARROCCHI Paolo wrote:
>Ciao a tutti,
>torno alla carica con le mie domande sullo scripting
>in bash ;-)
>
>Utilizzo tutti i giorni il seguente script:
>
>bash-2.05$ cat totali.sh
>#!/usr/bin/bash
>lista=$(ls HTOT*$1.TXT)
>for i in $lista;
>do
>echo $i
>awk 'BEGIN{FS=";";a=0;b=0;}{a=a+$3;b=b+$4}END{print "MO: "a " MT:
>"b}'<$i
>echo -n "Richieste di download:"
>trailer=$(echo $i|cut -d "_" -f 2|cut -d "." -f 1).TXT
>current_download=DOWNLOADRINGO_$trailer
>current_smsringo=SMSRINGO_$trailer
>./erasefirstline.sh $current_download|wc -l
>echo "Richieste download Loghi Operatore:" $(grep -c G.LO
>$current_download)
>echo "Richieste download Loghi Gruppo:" $(grep -c G.LG
>$current_download)
>echo "Richieste download Suonerie:" $(grep -c G.S $current_download)
>echo "Richieste download Picture Message:" $(grep -c G.PM
>$current_download)
>echo "MO Loghi&Suonerie:" $(grep -c G. $current_smsringo)
>echo "MO Loghi Operatori:" $(grep -c G.LO $current_smsringo)
>echo "MO Loghi Gruppo:" $(grep -c G.LG $current_smsringo)
>echo "MO Suonerie:" $(grep -c G.S $current_smsringo)
>echo "MO Picture Message:" $(grep -c G.LO $current_smsringo)
>echo
>done;
>
>
>Serve per estrarre della statistiche da alcuni file di log.
>
>Lo posso utilizzare in due modi:
>totali.sh # Per estrarre _tutte_ le statistiche disponibili
>totali.sh 200309* # Per estrarre solo le statistiche del mese di
>settembre.
>
>Vorrei cambiare la sintassi di utilizzo in qualcosa come:
>./totali.sh # per tutte le stat
>./totali.sh -d (o --date=) 200309 #Per settembre
>./totali.sh --date=200309 --check #per aggiungere un check sulla
>presenza di alcuni file
>
>Come si possono gestire questi parametri (--pluto, --paperino, etc...)
>in bash ?
>
>
>
come gli alrti parametri di script:
$0 e' il nome di se', $1 e' il primo parm, $2 il secondo... eccetera...
poi nello script fai dei test sul primo paramatro e via di fila:
ad esempio:
====8<---------
case "$1" in
"-h"|"--help")
echo "questo si usa cosi'"
"--pluto")
cat cane > /dev/null
"--paperino")
#cat /dev/urandom > /devhda1
*)
echo "eccetera"
exit
esac
====8<-------
oppure:
TTTT=$1
if test "$TTTT" =""; then
TTTT="030911"
fi
======8<------
io solitamente assegno l'$1 o chi per esso a una variabile locale e
faccio il check su quella, cosi' le assegno poi eventualmente un valore
di default se non me la passano...
enjoy!
PTT
--
"...Been around this world so many times,
if you could only see my mind..."