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.

!<br />

Capitolo 3. Caratteri speciali<br />

In combinazione con >, l’operatore <strong>di</strong> re<strong>di</strong>rezione, azzera il contenuto <strong>di</strong> un file, senza cambiarne i<br />

permessi. Se il file non esiste, viene creato.<br />

: > data.xxx # Ora il file "data.xxx" è vuoto.<br />

# Ha lo stesso effetto <strong>di</strong> cat /dev/null > data.xxx<br />

# Tuttavia non viene generato un nuovo processo poiché ":" è un builtin.<br />

Ve<strong>di</strong> anche Esempio 12-14.<br />

In combinazione con l’operatore <strong>di</strong> re<strong>di</strong>rezione >> non ha alcun effetto su un preesistente file <strong>di</strong><br />

riferimento (: >> file_<strong>di</strong>_riferimento). Se il file non esiste, viene creato.<br />

Nota: Si utilizza solo con i file regolari, non con con le pipe, i link simbolici ed alcuni file<br />

particolari.<br />

Può essere utilizzato per iniziare una riga <strong>di</strong> commento, sebbene non sia consigliabile. Utilizzando #<br />

si <strong>di</strong>sabilita la verifica d’errore sulla parte restante <strong>di</strong> quella riga, così nulla verrà visualizzato dopo<br />

il commento. Questo non succede con :.<br />

: Questo è un commento che genera un errore, (if [ $x -eq 3] ).<br />

I “:” servono anche come separatore <strong>di</strong> campo nel file /etc/passwd e nella variabile $PATH.<br />

bash$ echo $PATH<br />

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

inverte (o nega) il senso <strong>di</strong> una verifica o <strong>di</strong> un exit status [punto esclamativo]. L’operatore !<br />

inverte l’exit status <strong>di</strong> un comando a cui è stato anteposto (ve<strong>di</strong> Esempio 6-2). Cambia anche il<br />

significato <strong>di</strong> un operatore <strong>di</strong> verifica. Può, per esempio, cambiare il senso <strong>di</strong> “uguale” ( = ) in “non<br />

uguale” ( != ). L’operatore ! è una parola chiave <strong>Bash</strong>.<br />

In un contesto <strong>di</strong>fferente, il ! appare anche nelle referenziazioni in<strong>di</strong>rette <strong>di</strong> variabili.<br />

Ancora, da riga <strong>di</strong> comando il ! invoca il meccanismo della cronologia <strong>di</strong> <strong>Bash</strong> (ve<strong>di</strong> Appen<strong>di</strong>ce J).<br />

È da notare che, all’interno <strong>di</strong> uno script, il meccanismo della cronologia è <strong>di</strong>sabilitato.<br />

16

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

Saved successfully!

Ooh no, something went wrong!