LinuxLudus: bash e funzioni
Valerio Pachera
sirio81@gmail.com
Ven 21 Set 2007 11:36:12 CEST
Il 20/09/07, Valerio Pachera<sirio81@gmail.com> ha scritto:
> Le variabili $1 $2 in uno script rappresentano i parametri passati e
> la variabile $@ li raccoglie tutti.
>
> In una funzione in cui non so quanti argomenti verranno passati, come
> vengono chimati all'interno della fuzione stessa?
Mi autorispondo: i parametri passati ad una funzione sono identificati
AL SUO INTERNO sempre dalle variabili $1 $2 $# etc, come avviene per i
paramtri passati allo script MA NON SONO GLI STESSI.
Ricordo che le variabili presenti in una funzione sono private e
quindi esistono solo al suo interno e non importa se hanno il nome di
altre variabili usate nello script (cioč al di fuori della funzione).
Ecco un esempio che chiarifica le idee:
salvato il seguente script in un file e rendetelo eseguibile:
----------------
#!/bin/bash
echo "fuori dalla funzione";
echo "hai passato $# argomenti allo script";
echo $@;
echo "";
function prova () {
echo "dentro la funzione";
echo "hai passato $# argomenit alla funzione";
echo $@;
}
echo "richiamo la funzione";
prova gatto cane;
----------------
se lanciate lo script in questo modo:
./script.sh param1 param2
otterrete come output
fuori dalla funzione
hai passato 2 argomenti allo script
param1 param2
dentro la funzione
hai passato 2 argomenit alla funzione
gatto cane
Maggiori informazioni sulla lista
linuxludus