Ed eccoci alla seconda “lezione” sulla shell Bash (per chi fosse interessato, questa è la prima parte)..

Uno script è una sequenza di comandi che verrà eseguita su richiesta oppure automaticamente, per crearne uno avete bisogno semplicemente di un editor di testo, che sia nano o vi o vim o gedit (o qualsiasi altro) non importa. Uno script può essere richiamato semplicemente inserendo il suo “nome” nella shell, o può essere eseguito automaticamente dal sistema secondo le nostre impostazioni (molte operazioni all’avvio sono infatti degli script eseguiti in automatico).

Vediamo un piccolo esempio:

#!/bin/bash
clear
echo "Questo è il tuo primo script"
echo "Benvenuto $USER"

Provate questo piccolo script e vedrete il risultato. 😉

Molto semplicemente, questo script visualizza le due stringhe indicate da echo, dopo aver ripulito la console (con il comando clear). $USER è la variabile di ambiente che contiene il nome utente con cui siamo loggati al momento. Focalizziamo la nostra attenzione sulla prima riga: #!/bin/bash.

Questo serve a “dire” al sistema quale shell stiamo usando, ovviamente a patto che questa sia localizzata in /bin. E’ chiaro quindi che ogni script deve iniziare con questa riga!!

Può essere poi utile inserire dei commenti nel nostro script, i quali non saranno visualizzati, ma potrebbero sempre tornare utili nel caso in cui riprendiamo il codice dopo mesi dalla sua creazione. Lo script visto prima diventa semplicemente:

#!/bin/bash
# Pulisco lo schermo
clear
# Stampo le seguenti due righe
echo "Questo è il tuo primo script"
echo "Benvenuto $USER" # $USER contiene il nome utente
                       # con cui siamo loggati

Abbiamo parlato di variabili, dobbiamo dire che queste sono sempre indicate da lettere tutte maiuscole, e sono di due tipi:

  • globali, ovvero disponibili per tutte le shell, visualizzabili col comando printenv;
  • locali, ovvero disponibili solo per la shell al momento utilizzata, visualizzabili col comando set (che attenzione visualizza anche le funzioni attualmente in memoria).

Ovviamente, locali o globali che siano, le variabili hanno anche un tipo, ovvero possono essere stringhe, numeri, array, e ovviamente possono anche essere dichiarate come costanti. In genere, la convenzione usata nella dichiarazione di una variabile è semplice:

NOMEVARIABILE="valore"

Attenzione perchè una variabile così dichiarata è disponibile solo nella shell corrente.

Caratteri speciali

  • carattere di escape: si tratta semplicemente del carattere \, serve ad indicare di non considerare altri simboli speciali. Ad esempio: echo \$USER non stamperà il valore della variabile di ambiente $USER, ma esattamente la stringa $USER;
  • apici doppi: le famore virgolette (” “), servono a mantenere il valore letterale di un carattere, ad eccezione del $. Ad esempio echo "$USER" stamperà il nome dell’utente connesso;
  • apici singoli: ovvero ‘VARIABILE’. In questo caso si conserva il valore letterale dei caratteri, riprendendo l’esempio precedente echo '$USER' stamperà a video proprio la stringa $USER

Attenzione alla combinazione di questi caratteri speciali, si potrebbero ottenere effetti del tutto imprevisti!!

In uno script di shell possono ovviamente essere usati operatori aritmetici e logici, si tratta di quelli classici, comuni a molti linguaggi di programmazione. Ne trovate una esauriente lista a questo link.

Alias

Concludiamo questo articolo con due comandi molto importanti e molto usati per semplificare la vita del programmatore: alias e unalias. A cosa servono?? Semplice, un alias è una parola che “sostituisce” altre, ad esempio, il comando ls -al riporta l’elenco di tutti i file presenti nella directory corrente, compresi i file nascosti, in una visualizzazione verticale con molte informazioni aggiuntive.

Ora, il comando:

alias lsa='ls -al'

Non fa altro che consentirci di usare il comando lsa invece di ls -al. Scrivendo semplicemente alias nella console, verrà restituita la lista degli alias correnti. Possiamo infine eliminare un alias col comando unalias, nell’esempio precedente:

unalias lsa

Alla prossima..

Share
Molto scarsoScarsoSufficienteBuonoOttimo (Nessun voto)
Loading...

Licenza

Creative Commons License
RedBlue's Blog di RedBlue è rilasciato sotto licenza Creative Commons 2.5 Italia.

Badges

Cionfs'Forum CMS Check PageRank

Other

Se hai trovato utile questo blog, supportalo con una piccola donazione per l'hosting..


Locations of visitors to this page