Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

Funzioni della shell

Il nostro script attualmente esegue i seguenti passaggi per generare il documento HTML:

1. Aprire la pagina.

2. Aprire l'intestazione della pagina.

3. Imposta il titolo della pagina.

4. Chiudere l'intestazione della pagina.

5. Apri il corpo della pagina.

6. Intestazione pagina di output.

7. Data e ora di uscita.

8. Chiudere il corpo della pagina.

9. Chiudi pagina.

Per la nostra prossima fase di sviluppo, aggiungeremo alcune attività tra i passaggi 7 e 8. Questi includeranno:

● Tempo di attività e carico del sistema. Questa è la quantità di tempo dall'ultimo spegnimento o riavvio e il numero medio di attività attualmente in esecuzione sul processore in diversi intervalli di tempo.

● Spazio su disco. L'utilizzo complessivo dello spazio sui dispositivi di archiviazione del sistema.

● Spazio domestico. La quantità di spazio di archiviazione utilizzata da ciascun utente.


Se avessimo un comando per ciascuna di queste attività, potremmo aggiungerli al nostro script semplicemente tramite la sostituzione del comando:



#! / Bin / bash


# Programma per l'output di una pagina di informazioni di sistema


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

TIMESTAMP="Generato $CURRENT_TIME, da $USER"


gatto << _EOF_

#! / Bin / bash


# Programma per l'output di una pagina di informazioni di sistema


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

TIMESTAMP="Generato $CURRENT_TIME, da $USER"


gatto << _EOF_


$TITLE

$TITLE

$TIMESTAMP

$(rapporto_tempo di attività)

$(report_spazio_disco)

$(rapporto_casa_spazio)

_EOF_

$TITLE

$TITLE

$TIMESTAMP

$(rapporto_tempo di attività)

$(report_spazio_disco)

$(rapporto_casa_spazio)

_EOF_


Potremmo creare questi comandi aggiuntivi in ​​due modi. Potremmo scrivere tre script separati e inserirli in una directory elencata nel nostro PATH, oppure potremmo incorporare gli script all'interno del nostro programma come funzioni della shell. Come accennato in precedenza, le funzioni di shell sono dei "mini-script" che si trovano all'interno di altri script e possono agire come programmi autonomi. Le funzioni di shell hanno due forme sintattiche. Innanzitutto, la forma più formale:

function Nome {

comandi

ritorno

}

e la forma più semplice (e generalmente preferita):

Nome () {

comandi

ritorno

}

Immagine

#! / Bin / bash

#! / Bin / bash

# Demo della funzione Shell


function step2 { echo "Step 2" return

}

# Il programma principale inizia qui echo "Step 1"

# Demo della funzione Shell


function step2 { echo "Step 2" return

}

# Il programma principale inizia qui echo "Step 1"

where Nome è il nome della funzione e comandi è una serie di comandi contenuti all'interno della funzione. Entrambe le forme sono equivalenti e possono essere utilizzate in modo intercambiabile. Di seguito vediamo uno script che dimostra l'utilizzo di una funzione shell:


1

2

3

4

5

6

7

8

9

10

11

12

1

2

3

4

5

6

7

8

9

10

11

12

Funzioni della shell


13 passo2

14 echo "Fase 3"

13 passo2

14 echo "Fase 3"


Quando la shell legge lo script, passa dalle righe da 1 a 11, poiché tali righe sono costituite da commenti e dalla definizione della funzione. L'esecuzione inizia alla riga 12, con an eco comando. Riga 13 chiamate la funzione shell step2 e la shell esegue la funzione proprio come farebbe con qualsiasi altro comando. Il controllo del programma si sposta quindi alla riga 6 e la seconda eco comando viene eseguito. La riga 7 viene eseguita successivamente. Suo ritorno Il comando termina la funzione e restituisce il controllo al programma alla riga successiva alla chiamata alla funzione (riga 14) e al finale eco comando viene eseguito. Si noti che affinché le chiamate di funzione vengano riconosciute come funzioni di shell e non interpretate come nomi di programmi esterni, le definizioni delle funzioni di shell devono apparire nello script prima di essere chiamate.

Aggiungeremo definizioni minime di funzioni di shell al nostro script:



#! / Bin / bash


# Programma per l'output di una pagina di informazioni di sistema


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

TIMESTAMP="Generato $CURRENT_TIME, da $USER"


report_uptime() { ritorno

}


report_disk_space () { ritorno

}


report_home_space () { ritorno

}


gatto << _EOF_

$TITLE

$TITLE

$TIMESTAMP

$(rapporto_tempo di attività)

$(report_spazio_disco)

$(rapporto_casa_spazio)

#! / Bin / bash


# Programma per l'output di una pagina di informazioni di sistema


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

TIMESTAMP="Generato $CURRENT_TIME, da $USER"


report_uptime() { ritorno

}


report_disk_space () { ritorno

}


report_home_space () { ritorno

}


gatto << _EOF_

$TITLE

$TITLE

$TIMESTAMP

$(rapporto_tempo di attività)

$(report_spazio_disco)

$(rapporto_casa_spazio)


_EOF_

_EOF_


I nomi delle funzioni della shell seguono le stesse regole delle variabili. Una funzione deve contenere almeno un comando. Il ritorno comando (che è facoltativo) soddisfa il requisito.


Il miglior sistema operativo cloud computing su OnWorks: