Categories: Linux

Scrivere Programmi per Bash in Linux

Nonostante le distribuzioni Linux siano sempre più facili da usare, capita a volte di dover ricorrere alla shell e qui l’utente medio si ferma e dice che Linux è un sistema per esperti. In questo articolo parlerò della programmazione della shell che in un mondo come quello del pinguino serve sempre.
Ci sono vari tipi di shell, qui parleremo della sh ( Bourme Shell ) da cui poi si è evoluta la bash, che è forse la più utilizzata oggi. In Linux un file è eseguibile quando ha determinati bit settati e non dall’estensione, per rendere esguibile un file occorre usare il comando:

chmod +x nomefile

però va eseguito con ./nomefile a meno che non si metta in path:

export path = $path:/directory/filename

con export difatti si esporta la variabile generale path senza scriverla nei file di avvio e vale solo nella finestra della shell corrente.

La shell di Linux in un terminale di Gnome

I commenti sono come quelli del C con // o /* */, mentre le variabili hanno il funzionamento di quelli di php con il $ davanti ( $totale ) per il valore, mentre senza niente per l’assegnazione ( totale = 10 ). Ci sono variabili speciali come $1 – $2 … che non sono altro che gli argomenti della riga di comando, il primo, il secondo e così via. I comandi della shell si scrivono tali e quali, per esempio se scriviamo

cp -i $1 $2

copierà il primo sul secondo parametro della riga di comando. Alcuni caratteri hanno valore speciale per la shell e vanno usati con attenzione, ad esempio se scrivo

vi * editerò tutti i files della directory corrente, mentre con vi \* si aprirà solo il file di nome *

in gergo si chiama fare il quoting di un carattere speciale. Ma vediamo alcuni esempi pratici della programmazione della shell:

#/bin/sh

eta = 24
echo ‘La mia età è’ $eta

questo programmino scrive sulla shell “la mia età è 24” in quanto echo è il comando per scrivere. Le stringhe costanti vanno tra apici.

#/bin/sh
a=5
b=8
tot=$a+$b
if $tot > 10 -a $tot < 20 then
    echo $tot
fi

questo invece scrive il totale della somma solo se il valore è compreso tra 11 e 19. Gli operatori logici sono -a ( AND ) -o ( OR ) ! ( NOT ).

Come in altri linguaggi esiste if … else … fi ricordarsi sempre di chiudere if con fi! Esiste anche while do … done e poi anche il ciclo for di cui riporto un esempio, scrivere i numeri da 1 a 10.

#!/bin/sh
for i in 1 2 3 4 5 6 7 8 9 10
do
    echo $i
done

Per il debug si usa la echo e si fa output dei valori delle variabili su shell, magari con la riga corrente per sapere dove sta l’errore, perchè si possono scrivere dei veri e propri programmi con la shell, usate il comando less su qualche file di avvio e vi renderete conto di quello che vuol dire! Abbiamo visto come la Bourme Shell possa essere usata per programmare, non certo al livello del C o Perl o Java, ma comunque può essere adatta per alcuni compiti, come ad esempio compilare al volo i pacchetti sorgenti di una distribuzione come ArchLinux.

Share
Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.

Recent Posts

Un Abbonamento per Tutti i Software

Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…

1 anno ago

Software di Magazzino Gratuito

MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→

1 anno ago

Mettere il PC in Lock Screen

In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…

3 anni ago

Fare il reset togliendo la corrente

In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…

3 anni ago

Prossimi Aggiornamenti Software

Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…

3 anni ago

Come Eliminare i Files in Windows

Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→

4 anni ago