Mac OS X: Creare una propria cartella per gli Script Bash

Mi capita spesso la necessità di crearmi degli Script Bash con i quali svolgere operazioni ripetitive.

Si tratta di programmi che vengono interpretati run-time ed eseguiti; in altri termini: il sistema operativo apre il file sorgente dello script, lo interpreta e lo esegue.

N.B.: Solo per conoscenza sottolineo come, solitamente, i programmi (o Applicazioni, come ultimamente vengono chiamate), si trovano in una forma che il sistema non deve interpretare, sono già direttamente eseguibili (contengono, appunto, le istruzioni in codice macchina per il proprio sistema operativo/hardware e sono conosciuti come file binari); tuttavia, prima di essere dei file binari, erano dei file sorgenti (cioè il codice scritto in un qualche Linguaggio di Programmazione – come ad esempio C, C++, C#, Visual Basic e molti altri – da un utente programmatore) che sono stati trasformati attraverso un’operazione detta di compilazione (in sintesi: un codice sorgente scritto con un linguaggio di programmazione viene compilato per creare un codice binario eseguibile).

Le comodità di creare uno Script Bash sono molteplici:

  1. Bash è disponibile su pressoché qualsiasi piattaforma UNIX, quindi, non necessita di installare nulla di complicato ed è alla base del sistema operativo stesso, che la utilizza per eseguire alcune operazioni.
  2. E’ semplice da imparare e, online, è pieno di guide e tutorial che spiegano in modo approfondito l’argomento, nonché, si trovano migliaia di FAQ per risolvere i più disparati compiti (spesso, programmare in bash, si traduce in cerca/copia/incolla).
  3. Non necessita di compilazione (che è comunque un’operazione che richiede tempo); il codice scritto è immediatamente eseguibile e si possono, subito, vedere gli effetti di quello che si è scritto.
  4. Sfruttando le potenzialità del terminale UNIX ed, in particolare, della miriade di comandi disponibili (una sorta di enorme coltellino svizzero) è possibile implementare pressoché qualsiasi funzionalità, dalla più semplice fino a cose mediamente sofisticate (io ci ho fatto un Search Engine per un WEB Server, un plugin per XChat IRC Client e parecchio altro).

Ora veniamo a trattare l’installazione, procedere come segue:

  • Aprire un terminale (dal Finder: Applicazioni->Utility->Terminale) e dare i seguenti comandi (sono 4 e, per ognuno, va premuto INVIO per eseguirlo):
    cd $HOME
    mkdir bin
    echo 'PATH=${PATH}:${HOME}/bin' > .bash_profile
    cd bin

    consiglio di fare dei copia/incolla, per evitare errori; notare che è possibile copiare tutte le righe (da qui) e incollarle contemporaneamente nel terminale, per eseguire tutto, assieme e subito senza possibilità di errore.

  • Chiudere il terminale e riaprirlo.
  • Ora bisogna creare il file Script Bash; per farlo, sempre da terminale, utilizzare questi 3 comandi:
    cd $HOME/bin
    touch script.sh
    chmod +x script.sh
  • Ora tramite il Finder, nella propria cartella HOME/bin (quella con il simbolo di casetta), è possibile rinominare il file script creato – secondo le proprie esigenze, dandogli un nome che, mnemonicamente, faccia intuire lo scopo – e soprattutto modificarne il contenuto (in questo momento è ancora vuoto !). Per rinominarlo è sufficiente fare 2 click – lenti, non doppio click ! – sul nome del file (consiglio di mantenere l’estensione “.sh”, anche se non indispensabile) dal Finder mentre, per modificarlo, è necessario fare click con il tasto destro e scegliere l’opzione di menu Apri con -> TextEdit (o quello che si preferisce, qualsiasi editor di testo va bene !).
  • Adesso non resta che incollare lo script, se lo si prende da qualche parte (ad esempio, il mio Blog !), oppure scriverlo di getto usando sempre questa riga all’inizio:
    #!/bin/bash

Per usare lo script creato è sufficiente scrivere il suo nome completo nel terminale, eventualmente aggiungere dei parametri se sono previsti e premere INVIO.

Notare che Bash è potente e, tra le innumerevoli cose:

  • Offre la possibilità di completare in automatico il nome dei programmi (nel nostro caso anche degli script da noi realizzati), senza quindi la necessità – con possibilità di sbagliare ! – di scriverli a mano, iniziando a digitare le prime lettere (diciamo 3, ma rispettando maiuscole/minuscole, motivo per il quale, consiglio di adottare una propria regola; ad esempio io nomino con “UDA_” all’inizio tutti i miei script) e premendo il tasto di tabulazione ( ->| ), più volte se necessario (quando trova ambiguità, il sistema si ferma a completare fino alla parte non ambigua e, alle successive pressione del tabulatore, mostra un elenco delle ambiguità).
  • Offre la possibilità di recuperare comandi dati in precedenza, sia riesumandoli con il tasto freccia sù – della tastiera – sia andandoli a cercare con il comando ctrl+r (riverse-i-search).


Autore: BuDuS

Disegnatore Meccanico, con la passione per l'Informatica. Come hobby, produco piccoli software di (in)utilità.