Problemi di scripting in bash.

Riccardo Torrini riccardo a torrini.org
Gio 21 Ott 2004 12:13:18 CEST


On Thu, Oct 21, 2004 at 12:01:18PM +0200, Matteo wrote:

> C'e' modo di far passare un valore di ritorno dal processo
> figlio al processo padre?

Basta usare il codice di ritorno (si, lo so, sembra una presa in giro
ma e' quello che devi fare).  Mi spiego meglio:

- usa sh (e non bash).  E' un discorso di purezza, non obbligatorio.
- fai quello che devi fare nello script "due" ed esci con "exit n"
- controlla il codice di ritorno nello script "uno"


Esempio (non ho provato ma dovrebbe andare):

-----8<-----[ uno ]-----8<-----
#!/bin/sh

# lancio lo script "due"
due

# ne controllo il codice di ritorno
case $? in
0)
	echo "zero"
	;;
1)
	echo "uno"
	;;
2)
	echo "due"
	;;
3)
	echo "tre"
	;;
*)
	echo "unhandled  :-)"
	;;
esac
-----8<-----


-----8<-----[ due ]-----8<-----
#!/bin/sh

if [ -f /tmp/un_file_a_caso ]; then
	exit 1
fi

if [ -z /tmp/un_file_vuoto ]; then
	exit 2
fi

if [ -r /dev/mem ];then
	exit 3
fi
exit 0
-----8<-----


Ovviamente gli script possono/devono essere piu' lunghi e fare
qualcosa di utile, ma spero serva a far capire il concetto.


-- 
Riccardo. ( http://www.GUFI.org/~vic/ )



Maggiori informazioni sulla lista aiuto