sabato 12 luglio 2014

Costruiamo una calcolatrice [Brevi Esercizi]

Oggi costruiamo una semplice ma potente calcolatrice.

Partiamo dal risultato finale:

calcolatrice(){ awk "BEGIN{ print $* }" ;}

Da questa semplice (si fa per dire) riga di codice ne possiamo trarre gli ingredienti per poterla costruire.

Anzitutto c'è una funzione, la cui sintassi è la seguente:

calcolatrice() { comandi; }

Il comando della funzione (ne può contenere vari, eh), è costituito in questo caso da awk. Ad awk chiediamo di stampare il contenuto della variabile $*

$* è un parametro speciale. Possiamo dire che è una variabile il cui contenuto è costituito da ciò che noi diamo in pasto allo script a mo' di parametri posizionali.

Un esempio di parametri posizionali per la nostra calcolatrice può essere 5 + 6, che print di awk, essendo perspicace, riconosce come operazione aritmetica, e la svolge.

Ricordo che la funzione altro non è che del codice inerte, che diventa "vivo" solo quando viene richiamata, la funzione, col suo nome.

Se digitiamo il codice di cui sopra nel terminale, non succede un bel nulla. E il fatto che non succeda nulla vuol dire che il codice è scritto secondo la sintassi giusta.

Facciamo una prova, digitiamo il codice della nostra calcolatrice nel terminale:

calcolatrice(){ awk "BEGIN{ print $* }" ;}

Ora per richiamarla basta digitarne il nome seguito dall'operazione aritmetica che vogliamo svolgere. Esempio

calcolatrice 5+6

oppure

calcolatrice 5/6

Da quest'ultima operazione potrete notare come la nostra calcolatrice supporta benissimo i numeri decimali. Ben sei numeri dopo la virgola!!

La calcolatrice è pronta, tuttavia...

Tuttavia se chiudete il terminale, lo riaprite e richiamate la funzione con la vostra operazione da svolgere, vi viene restituito:

calcolatrice: comando non trovato

Essì, reset!!! Per evitare di scrivere ogni volta il codice della nostra calcolatrice dobbiamo riportarlo anche nel .bashrc, che si trova nella home dell'utente.

Abbiamo due modi per farlo. Andare a cercare il file .bashrc e incollare il codice di cui sopra, alla fine del testo, oppure costruire una riga di comando che faccia il lavoro sporco al posto nostro. Da lanciare una sola volta, eh! Infatti ">>" andrà ad "appendere" il codice della nostra calcolatrice nel file .bashrc.

echo "calcolatrice(){ awk \"BEGIN{ print \$* }\" ;}" >> ~/.bashrc


Di questa riga colpiscono i tre "\" (backslash). Uno serve a conservare il parametro speciale, che altrimenti sparirebbe. Gli altri due servono a mantenere i doppi apici al codice di awk. Provate a toglierli tutti e tre e vedete cosa succede.


Un'ultima cosa. Anche dopo aver aggiunto la riga di codice all'interno del file .bashrc, se provate a richiamare la calcolatrice, essa ancora non funziona. In realtà fin quando il terminale non verrà chiuso, non si accorgerà della modifica, a meno che...

A meno che non digitiamo:

source ~/.bashrc

Ecco, provate. E alla prossima.

 Altri articoli della rubrica "Brevi Esercizi" li trovate qui.

Nessun commento:

Posta un commento