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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

$OLDPWD<br />

$OSTYPE<br />

$PATH<br />

$PIPESTATUS<br />

Capitolo 9. Variabili riviste<br />

<strong>di</strong>rectory <strong>di</strong> lavoro precedente (“OLD-print-working-<strong>di</strong>rectory”, la <strong>di</strong>rectory in cui vi trovavate<br />

prima dell’ultimo comando cd)<br />

nome del sistema operativo<br />

bash$ echo $OSTYPE<br />

linux<br />

i percorsi delle <strong>di</strong>rectory in cui si trovano i file eseguibili (binari), <strong>di</strong> solito /usr/bin/,<br />

/usr/X11R6/bin/, /usr/local/bin, ecc.<br />

Quando viene dato un comando, la shell ricerca automaticamente il percorso dell’eseguibile.<br />

Questo è possibile perché tale percorso è memorizzato nella variabile d’ambiente $PATH, che è un<br />

elenco <strong>di</strong> percorsi possibili separati da : (due punti). Di solito il sistema conserva la configurazione<br />

<strong>di</strong> $PATH nel file /etc/profile e/o ~/.bashrc (ve<strong>di</strong> Appen<strong>di</strong>ce G).<br />

bash$ echo $PATH<br />

/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/sbin:/usr/sbin<br />

PATH=${PATH}:/opt/bin aggiunge la <strong>di</strong>rectory /opt/bin ai percorsi predefiniti. Usato in<br />

uno script rappresenta un espe<strong>di</strong>ente per aggiungere temporaneamente una <strong>di</strong>rectory a $PATH.<br />

Quando lo script termina viene ripristinato il valore originale <strong>di</strong> $PATH (questo perché un processo<br />

figlio, qual’è uno script, non può mo<strong>di</strong>ficare l’ambiente del processo genitore, la shell).<br />

Nota: La “<strong>di</strong>rectory <strong>di</strong> lavoro” corrente, ./, <strong>di</strong> solito per ragioni <strong>di</strong> sicurezza, non è compresa in<br />

$PATH.<br />

Array contenente lo/gli exit status dell’ultima pipe eseguita in foreground (primo piano). È piuttosto<br />

interessante in quanto non fornisce necessariamente come risultato l’exit status dell’ultimo<br />

comando eseguito.<br />

bash$ echo $PIPESTATUS<br />

0<br />

bash$ ls -al | comando_errato<br />

bash: comando_errato: command not found<br />

101

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

Saved successfully!

Ooh no, something went wrong!