Quando uno script in bash cresce in dimensioni, diventa sempre più difficile trovare eventuali errori nel codice.
La shell GNU bash fornisce a questo scopo alcune funzionalità di debug.
La più immediata ed interessante è la “modalità debug“, che si attiva eseguendo la sotto-shell con l’opzione -x; in questa modalità ogni comando più ogni suo argomento è stampato sullo standard output dopo che le variabili sono state sostituite, ma prima di essere eseguito, ad esempio:
~$ cat script.sh #!/bin/bash VARTEST="variabile di test" echo "$VARTEST" echo "" ~$ bash -x script.sh + VARTEST='variabile di test' + echo 'variabile di test' variabile di test + echo '' ~$
Si può attivare la modalità di debug anche solo in un pezzo del codice, in questo modo:
~$ cat script.sh #!/bin/bash VARTEST="variabile di test" set -x echo "$VARTEST" set +x echo "" ~$ bash script.sh + echo 'variabile di test' variabile di test + set +x ~$
E’ possibile passare dalla modalità debug alla modalità normale quante volte si vuole all’interno di uno script.
Altro strumento utile è la “modalità di non-esecuzione“; in questa modalità la sintassi viene analizzata in cerca di errori, senza però eseguire i comandi dello script. La modalità è attivabile attraverso l’opzione -n, sia per tutto lo script che per una sua parte soltanto, in maniera analoga all’opzione precedente:
~$ cat script.sh #!/bin/bash echo "inizio test" NUM=2 echo "numero = $NUM" if [[ 1 -lt $NUM ]] then echo $NUM maggiore di 1 ~$ bash -n script.sh script.sh: riga 8: errore di sintassi: fine di file non attesa ~$
Applicato su una porzione di codice:
~$ cat script.sh #!/bin/bash echo "inizio test" set -n NUM=2 echo "numero = $NUM" if [[ 1 -lt $NUM ]] then echo $NUM maggiore di 1 set +n ~$ bash script.sh inizio test script.sh: riga 10: errore di sintassi: fine di file non attesa ~$




Chi di recente ha aggiornato il browser Firefox alla nuova versione 3.6, si sarà accorto del cambiamento con cui viene gestita l’apertura delle nuove schede, all’interno del browser.
Dalla introduzione della portabilità del numero (Mobile Number Portability), in italia è possibile cambiare il proprio gestore telefonico mantenendo il vecchio numero di cellulare. Questo comporta che il prefisso del numero di cellulare non è più sufficiente per conoscere il suo gestore telefonico.