Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

Riassumendo

Con l'aggiunta di parametri posizionali, ora possiamo scrivere script abbastanza funzionali. Per compiti semplici e ripetitivi, i parametri posizionali consentono di scrivere funzioni di shell molto utili che possono essere collocate in un utente .bashrc file.

Il nostro sys_info_page programma è cresciuto in complessità e raffinatezza. Ecco un elenco completo, con le modifiche più recenti evidenziate:



#! / Bin / bash


# sys_info_page: programma per generare una pagina di informazioni di sistema


NOMEPROG=$(nome base $0)

TITLE="Rapporto informazioni di sistema per $HOSTNAME" CURRENT_TIME=$(data +"%x %r %Z")

TIMESTAMP="Generato $CURRENT_TIME, da $USER"


report_uptime () { cat <<- _EOF_

Tempo di attività del sistema

$(tempo di attività)

_EOF_ ritorno

#! / Bin / bash


# sys_info_page: programma per generare una pagina di informazioni di sistema


NOMEPROG=$(nome base $0)

TITLE="Rapporto informazioni di sistema per $HOSTNAME" CURRENT_TIME=$(data +"%x %r %Z")

TIMESTAMP="Generato $CURRENT_TIME, da $USER"


report_uptime () { cat <<- _EOF_

Tempo di attività del sistema

$(tempo di attività)

_EOF_ ritorno


}


report_disk_space () { cat <<- _EOF_

Utilizzo dello spazio su disco

$(df-h)

_EOF_ ritorno

}


report_home_space() {

if [[ $(id -u) -eq 0 ]]; poi gatto <<- _EOF_

Utilizzo dello spazio domestico (tutti gli utenti)

$(du -sh /home/*)

_EOF_

altro

gatto <<- _EOF_

Utilizzo dello spazio domestico ($USER)

$(du -sh $HOME)

_EOF_

fi ritorno

}


utilizzo () {

echo "$NOMEPROG: use: $NOMEPROG [-f file | -i]" return

}


write_html_page () { cat <<- _EOF_

$TITLE

$TITLE

$TIMESTAMP

$(rapporto_tempo di attività)

$(report_spazio_disco)

$(rapporto_casa_spazio)

_EOF_ ritorno

}


# elabora le opzioni della riga di comando

}


report_disk_space () { cat <<- _EOF_

Utilizzo dello spazio su disco

$(df-h)

_EOF_ ritorno

}


report_home_space() {

if [[ $(id -u) -eq 0 ]]; poi gatto <<- _EOF_

Utilizzo dello spazio domestico (tutti gli utenti)

$(du -sh /home/*)

_EOF_

altro

gatto <<- _EOF_

Utilizzo dello spazio domestico ($USER)

$(du -sh $HOME)

_EOF_

fi ritorno

}


utilizzo () {

echo "$NOMEPROG: use: $NOMEPROG [-f file | -i]" return

}


write_html_page () { cat <<- _EOF_

$TITLE

$TITLE

$TIMESTAMP

$(rapporto_tempo di attività)

$(report_spazio_disco)

$(rapporto_casa_spazio)

_EOF_ ritorno

}


# elabora le opzioni della riga di comando

Immagine

Riassumendo


interattivo=

nome file=


mentre [[ -n $1 ]]; fai caso $ 1 in

-f | --file)

spostamento

nomefile=$1

;;

interattivo=

nome file=


mentre [[ -n $1 ]]; fai caso $ 1 in

-f | --file)


-i | --interactive) interattivo=1

;;

-h | --help) uscita dall'utilizzo

;;

*) utilizzo >&2

esci da 1

;;

esac turno

fatto


# modalità interattiva


if [[ -n $interattivo ]]; quindi mentre è vero; fare

read -p "Inserisci il nome del file di output: " filename if [[ -e $filename ]]; poi

read -p "'$nomefile' esiste. Sovrascrivere? [y/n/q] > " case $REPLY in

Y|y) pausa

;;

Q|q) echo "Programma terminato." Uscita

;;

*) Continua

;;

che C

elif [[ -z $nomefile ]]; poi continua

altro

rompere

fi

fatto

fi


# output pagina html


if [[ -n $nomefile ]]; poi

if touch $nomefile && [[ -f $nomefile ]]; quindi scrivi_pagina_html > $nomefile

altro

-i | --interactive) interattivo=1

;;

-h | --help) uscita dall'utilizzo

;;

*) utilizzo >&2

esci da 1

;;

esac turno

fatto


# modalità interattiva


if [[ -n $interattivo ]]; quindi mentre è vero; fare

read -p "Inserisci il nome del file di output: " filename if [[ -e $filename ]]; poi

read -p "'$nomefile' esiste. Sovrascrivere? [y/n/q] > " case $REPLY in

Y|y) pausa

;;

Q|q) echo "Programma terminato." Uscita

;;

*) Continua

;;

che C

elif [[ -z $nomefile ]]; poi continua

altro

rompere

fi

fatto

fi


# output pagina html


if [[ -n $nomefile ]]; poi

if touch $nomefile && [[ -f $nomefile ]]; quindi scrivi_pagina_html > $nomefile

altro


echo "$PROGNAME: Impossibile scrivere il file '$filename'" >&2 exit 1

per altro

write_html_pagina

fi

echo "$PROGNAME: Impossibile scrivere il file '$filename'" >&2 exit 1

per altro

write_html_pagina

fi


Non abbiamo ancora finito. Ci sono ancora più cose che possiamo fare e miglioramenti che possiamo apportare.


Il miglior sistema operativo cloud computing su OnWorks: