<Precedenti | Contenuti | Succ.>
Riassumendo
Con l'aggiunta di parametri posizionali, ora possiamo scrivere script piuttosto funzionali. Per compiti semplici e ripetitivi, i parametri posizionali consentono di scrivere funzioni shell molto utili che possono essere inserite nella shell dell'utente. .bashrc file.
pagina_info_sys Il programma è diventato sempre più complesso e sofisticato. Ecco un elenco completo, con evidenziate le modifiche più recenti:
#! / Bin / bash
# sys_info_page: programma per generare una pagina di informazioni di sistema
NOMEPROGRAMMA=$(nomebase $0)
TITLE="Rapporto sulle informazioni di sistema per $HOSTNAME" CURRENT_TIME=$(date +"%x %r %Z")
TIMESTAMP="Generato $CURRENT_TIME, da $USER"
report_uptime () { cat <<- _EOF_
Tempo di attività del sistema
$(tempo di attività)
Ritorno _EOF_
#! / Bin / bash
# sys_info_page: programma per generare una pagina di informazioni di sistema
NOMEPROGRAMMA=$(nomebase $0)
TITLE="Rapporto sulle informazioni di sistema per $HOSTNAME" CURRENT_TIME=$(date +"%x %r %Z")
TIMESTAMP="Generato $CURRENT_TIME, da $USER"
report_uptime () { cat <<- _EOF_
Tempo di attività del sistema
$(tempo di attività)
Ritorno _EOF_
}
report_disk_space () { cat <<- _EOF_
Utilizzo dello spazio su disco
$(df -h)
Ritorno _EOF_
}
segnala_spazio_domestico () {
se [[ $(id -u) -eq 0 ]]; allora cat <<- _EOF_
Utilizzo dello spazio domestico (tutti gli utenti)
$(du -sh /home/*)
_EOF_
altro
gatto <<- _EOF_
Utilizzo dello spazio domestico ($USER)
$(du -sh $HOME)
_EOF_
ritorno fi
}
utilizzo () {
echo "$PROGNAME: utilizzo: $PROGNAME [-f file | -i]" return
}
write_html_page () { cat <<- _EOF_
$TITLE
$TITLE
$TIMESTAMP
$(report_uptime)
$(report_disk_space)
$(report_home_space)
Ritorno _EOF_
}
# opzioni della riga di comando del processo
}
report_disk_space () { cat <<- _EOF_
Utilizzo dello spazio su disco
$(df -h)
Ritorno _EOF_
}
segnala_spazio_domestico () {
se [[ $(id -u) -eq 0 ]]; allora cat <<- _EOF_
Utilizzo dello spazio domestico (tutti gli utenti)
$(du -sh /home/*)
_EOF_
altro
gatto <<- _EOF_
Utilizzo dello spazio domestico ($USER)
$(du -sh $HOME)
_EOF_
ritorno fi
}
utilizzo () {
echo "$PROGNAME: utilizzo: $PROGNAME [-f file | -i]" return
}
write_html_page () { cat <<- _EOF_
$TITLE
$TITLE
$TIMESTAMP
$(report_uptime)
$(report_disk_space)
$(report_home_space)
Ritorno _EOF_
}
# opzioni della riga di comando del processo
Riassumendo
interattivo=
nome file=
mentre [[ -n $1 ]]; esegui il case $1 in
-f | --file)
spostamento
nome file=$1
;;
interattivo=
nome file=
mentre [[ -n $1 ]]; esegui il case $1 in
-f | --file)
-i | --interattivo) interattivo=1
;;
-h | --help) utilizzo uscita
;;
*) utilizzo >&2
esci da 1
;;
spostamento esac
fatto
# modalità interattiva
se [[ -n $interattivo ]]; allora mentre vero; fai
leggi -p "Inserisci il nome del file di output: " nomefile se [[ -e $nomefile ]]; quindi
read -p "'$filename' esiste. Sovrascrivere? [y/n/q] > " case $REPLY in
Y|y) pausa
;;
Q|q) echo "Programma terminato." exit
;;
*) continua
;;
che C
elif [[ -z $filename ]]; quindi continua
altro
rompere
fi
fatto
fi
# pagina html di output
se [[ -n $filename ]]; allora
se tocchi $filename && [[ -f $filename ]]; allora scrivi_pagina_html > $filename
altro
-i | --interattivo) interattivo=1
;;
-h | --help) utilizzo uscita
;;
*) utilizzo >&2
esci da 1
;;
spostamento esac
fatto
# modalità interattiva
se [[ -n $interattivo ]]; allora mentre vero; fai
leggi -p "Inserisci il nome del file di output: " nomefile se [[ -e $nomefile ]]; quindi
read -p "'$filename' esiste. Sovrascrivere? [y/n/q] > " case $REPLY in
Y|y) pausa
;;
Q|q) echo "Programma terminato." exit
;;
*) continua
;;
che C
elif [[ -z $filename ]]; quindi continua
altro
rompere
fi
fatto
fi
# pagina html di output
se [[ -n $filename ]]; allora
se tocchi $filename && [[ -f $filename ]]; allora scrivi_pagina_html > $filename
altro
echo "$PROGNAME: Impossibile scrivere il file '$filename'" >&2 exit 1
per altro
scrivi_pagina_html
fi
echo "$PROGNAME: Impossibile scrivere il file '$filename'" >&2 exit 1
per altro
scrivi_pagina_html
fi
Non abbiamo ancora finito. Ci sono ancora molte cose che possiamo fare e miglioramenti che possiamo apportare.