Uno script è un particolare programma scritto, in genere, con un linguaggio interpretato e detto linguaggio di scripting.
Una classe molto importante di questi linguaggi sono gli shell script o script concepiti per essere scritti per la shell o l’interprete della riga di comando di un sistema operativo.
Molti interpreti script sono a riga di comando come le molte shell Unix e Linux ma anche come Windows PowerShell, il command.com di MSDOS. Altri interpreti sono invece con interfaccia grafica come AppleScript o Windows Script Host che non necessitano di un’interfaccia a riga di comando. In questo articolo ci occupiamo principalmente degli script a riga di comando in ambiente Unix e Linux.
Spesso scrivere uno script è molto veloce rispetto a scrivere lo stesso codice in un altro linguaggio compilato e per un system administrator conoscere bene le shell e saper fare scripting è fondamentale nel risolvere i problemi quotidiani.
Le principale shell sotto Unix o Linux sono:
Bash o sh
Bash (acronimo per bourne again shell) è una shell testuale del progetto GNU usata nei sistemi operativi Unix e Unix-like, specialmente in GNU/Linux, ma disponibile anche per sistemi Microsoft Windows (vedi ad esempio Cygwin).
Bash è un clone evoluto della shell standard Unix ed è un interprete di comandi che permette all’utente di comunicare col sistema operativo attraverso una serie di funzioni predefinite oltre a permettere di eseguire programmi esterni.
Perl
Perl, al contrario di bash, è un linguaggio ad alto livello procedurale ed interpretato ma anche ad oggetti.
Perl è molto noto ed utilizzato come linguaggio per script CGI o anche come mod-perl con l’ausilio del web server Apache anche se nato come linguaggio di manipolazione di testo e file.
Perl sembrerebbe, a prima vista, derivato dal C ma conoscendolo meglio la somiglianza deriva dai vari programmi di script come awk per i vettori associativi e sed per le espressioni regolari, anche se la grammatica assomiglia molto al C.
Tcl
Tcl (acronimo di Tool Command Language), è un linguaggio di scripting creato da John Ousterhout generalmente considerato di facile apprendimento (rispetto ai linguaggi della sua generazione), ma allo stesso tempo potente. Viene comunemente usato per prototipizzare rapidamente e testare applicazioni interpretate, anche dotate di GUI. La pronuncia suggerita per l’acronimo Tcl è “tickle”.
Awk
Awk è un linguaggio interpretato orientato alla manipolazione dei dati intesi come stringhe o come file.
Awk in genere è anche usato come filtro o pipeline durante operazioni di scripting tra input/output di vari programmi.
Python
Python è un linguaggio di programmazione ad alto livello, orientato agli oggetti, adatto, tra gli altri usi, per sviluppare applicazioni distribuite, scripting, computazione numerica e system testing. Python è paragonabile a Ruby, Tcl, Perl, Java, JavaScript.
Ruby
Ruby è un linguaggio di scripting completamente a oggetti. Nato nel 1993 da Yukihiro Matsumoto, Ruby è stato il primo linguaggio di programmazione sviluppato in Oriente.
Il linguaggio che ha maggiormente ispirato l’autore è lo Smalltalk, da cui Ruby ha tratto la maggior parte delle sue caratteristiche. A seguire ci sono il Lisp (ed in generale i linguaggi funzionali), da cui provengono le chiusure (blocchi o proc, in Ruby), e il Perl, per la sintassi e l’espressività.