GNU/Linux >> Linux Esercitazione >  >> Linux

Come definire e utilizzare le funzioni in Linux Shell Script

La funzione è un blocco di codice riutilizzabile. Spesso inseriamo codice ripetuto in una funzione e chiamiamo quella funzione da vari punti. La libreria è una raccolta di funzioni. Possiamo definire funzioni comunemente usate in una libreria e altri script possono usarle senza duplicare il codice.

In questo articolo parleremo di più su funzioni e ricette. A scopo dimostrativo userò Bourne Again SHell (Bash) su macchina Ubuntu.

Funzione di chiamata

In Shell la funzione di chiamata è esattamente la stessa di qualsiasi altro comando. Ad esempio, se il nome della tua funzione è my_func, può essere eseguita come segue:

$ my_func

Se una funzione accetta argomenti, questi possono essere forniti dalla riga di comando come segue:

$ my_func arg1 arg2 arg3

Funzione di definizione

Possiamo usare la sintassi di seguito per definire la funzione:

 function function_name {
            Body of function
 }

Il corpo della funzione può contenere qualsiasi comando valido, vincolo di ciclo, altra funzione o script. Ora creiamo una semplice funzione che mostra il messaggio sullo schermo.

 function print_msg {
       echo "Hello, World"
 }

Ora eseguiamo questa funzione:

 $ print_msg
 Hello, World

Come previsto, questa funzione visualizza un messaggio sullo schermo.

Nell'esempio sopra abbiamo creato la funzione direttamente sul terminale. Possiamo anche memorizzare questa funzione in un file. L'esempio sotto lo dimostra.

 #! /bin/bash
 function print_msg {
       echo "Hello, World"
 }
 print_msg

Abbiamo definito questa funzione all'interno di function.sh file. Ora eseguiamo questo script:

 $ chmod +x function.sh
 $ ./function.sh
 Hello, World

Se osservi, l'output sopra è esattamente identico a quello precedente.

Ulteriori informazioni sulle funzioni

Nella sezione precedente abbiamo definito una funzione molto semplice. Tuttavia durante lo sviluppo del software abbiamo bisogno di funzioni più avanzate che possono accettare vari parametri e restituire valori. In questa sezione parleremo di tali funzioni.

Passaggio di argomenti alla funzione

Possiamo fornire argomenti per funzionare come altri comandi. Possiamo accedere a questi argomenti dalla funzione usando il simbolo dollar($). Ad esempio, $1 rappresenta il primo argomento, $2 rappresenta il secondo argomento e così via.

Modifichiamo la funzione precedente per accettare il messaggio come argomento. La nostra funzione modificata sarà simile a questa:

 function print_msg {
       echo "Hello $1"
 }

Nella funzione precedente accediamo al primo argomento usando $1. Eseguiamo questa funzione:

 $ print_msg "LinuxTechi"

Quando esegui questa funzione, genererà il seguente output:

 Hello LinuxTechi

Valore di ritorno dalla funzione

Come altri linguaggi di programmazione, Bash fornisce l'istruzione return usando la quale possiamo restituire un valore al chiamante. Cerchiamo di capirlo con un esempio:

function func_return_value {
      return 10
 }

La funzione sopra restituisce il valore 10 al suo chiamante. Eseguiamo questa funzione:

 $ func_return_value
 $ echo "Value returned by function is: $?"

Quando esegui la funzione sopra, genererà il seguente output:

 Value returned by function is: 10

NOTA: In bash dobbiamo usare $? per acquisire il valore di ritorno della funzione

Ricette di funzioni

Finora abbiamo avuto un'idea chiara delle funzioni bash. Ora creiamo alcune utili funzioni bash che possono essere utilizzate per semplificarci la vita.

Registratore di dati

Creiamo una funzione di registrazione che stamperà data e ora insieme al messaggio di registro.

 function log_msg {
        echo "[`date '+ %F %T'` ]: [email protected]"
 }

Eseguiamo questa funzione:

 $ log_msg "This is sample log message"

Quando esegui questa funzione, genererà il seguente output:

 [ 2018-08-16 19:56:34 ]: This is sample log message

Visualizza le informazioni di sistema

Creiamo una funzione per visualizzare informazioni sul sistema GNU/Linux

 function system_info {
       echo "### OS information ###"
       lsb_release -a

       echo
       echo "### Processor information ###"
       processor=`grep -wc "processor" /proc/cpuinfo`
       model=`grep -w "model name" /proc/cpuinfo  | awk -F: '{print $2}'`
       echo "Processor = $processor"
       echo "Model     = $model"

       echo
       echo "### Memory information ###"
       total=`grep -w "MemTotal" /proc/meminfo | awk '{print $2}'`
       free=`grep -w "MemFree" /proc/meminfo | awk '{print $2}'`
       echo "Total memory: $total kB"
       echo "Free memory : $free kB"
 }

Quando esegui la funzione sopra, genererà il seguente output:

### OS information ###
No LSB modules are available.
Distributor ID:           Ubuntu
Description:   Ubuntu 18.04.1 LTS
Release:         18.04
Codename:    bionic

### Processor information ###
Processor = 1
Model     =  Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz

### Memory information ###
Total memory: 4015648 kB
Free memory : 2915428 kB

Trova file o directory dalla directory corrente

Di seguito la funzione ricerca file o directory dalla directory corrente:

 function search {
      find . -name $1
 }

Cerchiamo la directory in particolare dir4 usando il comando seguente:

 $ search dir4

Quando esegui il comando sopra, genererà il seguente output:

 ./dir1/dir2/dir3/dir4

Orologio digitale

La funzione sottostante crea un semplice orologio digitale sul terminale

 function digital_clock {
            clear
            while [ 1 ]
            do
                  date +'%T'
                  sleep 1
                  clear
            done
 }

Creazione della libreria

La libreria è una raccolta di funzioni. Per creare una libreria:definisci le funzioni in un file e importa quel file nell'ambiente corrente.

Supponiamo di aver definito tutte le funzioni nel file utils.sh, quindi utilizzare il comando seguente per importare le funzioni nell'ambiente corrente:

$ source utils.sh

Di seguito puoi eseguire qualsiasi funzione dalla libreria proprio come qualsiasi altro comando bash.

Conclusione

In questo articolo abbiamo discusso alcune ricette utili che miglioreranno la tua produttività. Spero che questo articolo ti ispiri a creare le tue ricette.


Linux
  1. Come utilizzare la password crittografata nello script della shell Bash Linux

  2. Come confrontare numeri e stringhe nello script della shell di Linux

  3. Che cos'è un comando Chown in Linux e come usarlo

  4. Come installare e utilizzare Flatpak in Linux

  5. Come installare e utilizzare Traceroute in Linux

Come installare e utilizzare SSHFS su Linux

Come installare e utilizzare PuTTY su Linux

Come installare e utilizzare phpMyAdmin in Linux

Come installare e utilizzare ZSH Shell in Linux

Come installare e utilizzare il comando fd in Linux

Come installare e utilizzare Nu Shell su Linux