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