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.