Funzioni, una potente caratteristica della programmazione della shell, è un gruppo di comandi organizzati in base a funzionalità comuni. Queste unità facili da gestire, quando vengono chiamate, restituiscono un singolo valore e non generano nulla. L'utilizzo di una funzione prevede due passaggi:
1. Definizione della funzione
2. Invocare la funzione
Funzione shell vs alias shell
Le funzioni della shell e gli alias sono diversi sotto due aspetti.
– gli alias non accettano argomenti come le funzioni.
– se il nome di un comando è definito come una funzione e un alias, l'alias ha la precedenza.
Visualizza le funzioni della shell
Per visualizzare la funzione definisce, utilizzare il seguente comando:
# typeset -f list () { ls --color=auto -al | wc -l } num () { who | wc -l }
Definizione di una funzione
Una funzione viene definita utilizzando il seguente formato generale:
# function [function name] { command; . . . command; }Nota :Uno spazio deve apparire dopo la parentesi graffa di apertura e prima della parentesi graffa di chiusura.
L'esempio seguente definisce una funzione denominata num che visualizza il numero totale di utenti attualmente connessi al sistema. La funzione num esegue il comando who, il cui output è ulteriormente indirizzato al comando wc.
$ function num { who | wc -l; }
Funzioni della shell negli script della shell
Le funzioni non sono utili solo negli script di shell, ma vengono anche utilizzate in situazioni da riga di comando in cui un alias è inutilizzabile. A scopo dimostrativo, le funzioni della shell vengono eseguite sulla riga di comando per illustrare come funzionano le funzioni.
L'esempio seguente crea una funzione denominata list che visualizza il numero totale di sottodirectory e file nella directory corrente. La funzione list chiama il comando ls, il cui output è diretto al comando wc:
$ function list { ls -al | wc -l; }
$ list 34
Richiamo di una funzione
Puoi invocare una funzione semplicemente inserendo il nome della funzione sulla riga di comando o all'interno dello script della shell.
$ [function name]
Ad esempio, per richiamare la funzione num sulla riga di comando, utilizzare il comando seguente.
$ num