Valid HTML 4.01 Transitional

Home INTRO Variabili Output Aritmetica Selezioni Ripetizioni Test Funzioni

 

Generalita' Comandi Programmazione Manuale Zenity Free Script

 

 

CSS Valido!

 

 

Informazioni   Corso Linux - Sezione Programmazione - Capitolo Funzioni

Che cosa sono le Funzioni?

Blocchi di codice studiati per svolgere un particolare compito, che puo' essere eseguito piu' volte nel corso di un programma.
Sostanzialmente ha la seguente struttura:

function nome_funzione () { <-- parentesi graffe aperta
local variabile1=valore1 <-- definizione di variabili esistenti solo nella funzione
local variabile2=valore2
comando1 <-- comando, ciclo o ripetizione
comando2;comando3 <-- serie di comandi sulla stessa riga intervallati da ;
comando4
...
return $variabile_out <-- restituisce al chiamante la variabile_out che deve essere un numero
} <-- parentesi graffe chiusa
N.B. la parentesi graffa aperta si ottiene premendo AltGr+7, quella chiusa con AltGr+0

Per eseguire la funzione, che DEVE essere scritta nel programma PRIMA di ogni sua chiamata, basta inserire nel corpo del programma principale la sua chiamata
nome_funzione parametro1 parametro2
oppure
variabile_programma=`nome_funzione parametro1 parametro2`
(dove ` sono apici inversi ottenuti premendo AltGr+')
in quest'ultimo caso alla "variabile_programma" viene passato il valore della $variabile_out oppure, in mancanza di quest'ultima, il valore dello stato d'uscita della funzione che, come ricordi, e' 0 per esecuzione della stessa senza errori.
I "parametri" sono variabili passate dal chiamante per specializzare il compito della funzione ed assumono il significato di "variabili posizionali", ossia il "parametro1" sara' acquisito dalla funzione come $1, il "parametro2" come $2 ... ed il numero totale dei parametri come $# (ripassa il paragrafo variabili).

Si puo' terminare prematuramente la funzione all'interno di un ciclo, di una ripetizione o a seguito di una condizione inserendo in quel punto il comando "return" seguito eventualmente dalla $variabile_out.

Esempio di script "read_dir.sh" che richiama una funzione: per provare lo script , aprire il Terminale (la Shell Bash) e dare il seguente comando:
chmod +x /percorso_dove_hai_scaricato_lo_script/read_dir.h
/percorso_dove_hai_scaricato_lo_script/read_dir.sh


#!/bin/bash
# read_dir.sh
# creato martedì-11-novembre-2008 da Ciro Nuzzo
#------------ Descrizione Script------------------
# Esegue la lettura della directory home
#
#------------------variabili globali---------------

#-----------------------Funzioni-------------------
#----------------Funzione quale_dir----------------
#chiamata con nome directory da leggere, fornisce a video
#elenco file letti
#
function quale_dir () {
echo -e "Lettura directory $1 \n" # messaggio iniziale con \n per inserire un ritorno a capo

if [ -d $1 ];then # controlla se il parametro passato e' il nome di una directory
ls -la $1 # se si, lettura estesa della directory
else
echo -e "$1 non esiste /n" # altrimenti messaggio errore
fi
return
}
#------------inizio programma------------
# chiama la funzione passandogli come parametro il nome della dir da leggere
quale_dir "/home"
if [ $? ];then # testa lo stato d'uscita della funzione
echo "lettura dir $1 OK"
else
echo "Cambiare directory nello script e riprovare"
fi
#------------fine programma----------------

 

Copyright ©2009 Ciro Nuzzo - proglinux.altervista.org