11.04.2013 Views

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Capitolo 4. Introduzione alle variabili ed ai parametri<br />

Cautela<br />

Lo spazio assegnato all’ambiente è limitato. Creare troppe variabili<br />

d’ambiente, o se alcune occupano eccessivo spazio, potrebbe causare<br />

problemi.<br />

bash$ eval "‘seq 10000 | sed -e ’s/.*/export var&=ZZZZZZZZZZZZZZ/’‘"<br />

bash$ du<br />

bash: /usr/bin/du: Argument list too long<br />

(Grazie a Stéphane Chazelas per i chiarimenti e per aver fornito<br />

l’esempio.)<br />

Se uno script imposta delle variabili d’ambiente, è necessario che vengano “esportate”, cioè<br />

trasferite all’ambiente dei programmi che verranno eseguiti. Questo è il compito del comando<br />

export.<br />

---<br />

parametri posizionali<br />

Nota: Uno script può esportare le variabili solo verso i processi figli, vale a <strong>di</strong>re solo nei<br />

confronti dei coman<strong>di</strong> o dei processi che vengono iniziati da quel particolare script. Uno script<br />

eseguito da riga <strong>di</strong> comando non può esportare le variabili all’in<strong>di</strong>etro, verso l’ambiente<br />

precedente. Allo stesso modo, i processi figli non possono esportare le variabili all’in<strong>di</strong>etro<br />

verso i processi genitori che li hanno generati.<br />

rappresentano gli argomenti passati allo script da riga <strong>di</strong> comando: $0, $1, $2, $3 . . .<br />

$0 contiene il nome dello script, $1 è il primo argomento, $2 il secondo, $3 il terzo, ecc.. 1 Dopo<br />

$9 il numero degli argomenti deve essere racchiuso tra parentesi graffe, per esempio, ${10},<br />

${11}, ${12}.<br />

Le variabili speciali $* e $@ forniscono il numero <strong>di</strong> tutti i parametri posizionali passati.<br />

Esempio 4-5. Parametri posizionali<br />

#!/bin/bash<br />

44

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!