IMC!


Contenuti


Foto

 







Curiosando...
Novita  Novità Link  Link Blog  Blog English  Español 
10 - Creare funzioni nella bash

 | 

Come avviene in molti linguaggi di programmazione, anche negli script bash è possibile creare delle funzioni che permettono di ripetere più volte porzioni di codice. La sintassi per creare una funzione è:

nome_funzione()
{
  codice_della_funzione
}

oppure

function nome_funzione()
{
  codice_della_funzione
}

Come si può notare, la parola function è opzionale.

Anche la presenza di parentesi alla fine del nome della funzione è opzionale; infatti, a differenza della maggior parte dei linguaggi di programmazione, negli scrip bash tutte le variabili hanno un carattere globale. Vediamo un esempio:

#!/bin/bash

# Questo scrip mostra come tutte le variabili siano globali.
# Il programma stampa a schermo "Funzione", e non "Programma Principale",
# come avverrebbe normalmente in C.

function cambia_variabile
{
  variabile="Funzione"
}

# Main
variabile="Programma Principale"
cambia_variabile
echo "Variabile è stata modificata l'ultima volta da: $variabile"
 

Per rendere la variabile locale, cioè per far si che il suo valore non venga modificato nel main, possiamo usare l'attrobuto local. Riprendendo il precedente esempio:

#!/bin/bash

# Questo scrip mostra come rendere locale una variabile all'interno
# di una funzione.
# Il programma stampa a schermo "Programma Principale", e non "Funzione",
# come avverrebbe normalmente in uno scrip bash, in cui le variabili in
# funzioni e programma principale sono globali.

function cambia_variabile
{
  local variabile="Funzione"
}

# Main
variabile="Programma Principale"
cambia_variabile
echo "Variabile è stata modificata l'ultima volta da: $variabile"
 

Possiamo passare i parametri a una funzione utilizzando i parametri da riga di comando (che vedremo in seguito), come mostra il seguente esempio:

#!/bin/bash

# In questo esempio vengono passati alla funzione i valori
# 2 e 4 tramite i parametri da riga di comando
function mia_funzione
{
  var1=$1
  var2=$2
  echo "Valori passati: $var1 e $var2"
}

mia_funzione 2 4

 


 | 






Fatal error: Call to undefined function sqlite_open() in /membri/giacobbe85/include/commenti.inc.php on line 324