SHELL SCRIPTING

Precedente
Programma
Seguente
Bastard Operator From Hell!
echo $HOME
  otterremo il path della home directory dell'utente che ha eseguito il comando
Tips & Tricks

Va attribuito a ogni script shell il permesso di esecuzione: chmod +x script

La shell supporta strutture di controllo comuni con altri linguaggi:
if

if [espressione]
then
comando1
else
comando2
fi

for

for variabile in valore1 valore2
do
comando
done

while

while [espressione]
do
comando
done

case

case stringa in
pattern1) comando1 ;;
pattern2) comando2 ;;
esac

 

Introduzione
Uno script shell è una serie di comandi inseriti in un file mediante un qualsiasi programma di testo. Linux interpreta ed esegue i comandi dello script shell uno dopo l'altro. Sfruttando questa caratteristica è percui possibile scrivere programmi ed eseguirli come un normale comando Linux.
Per eseguire uno script occorre avviare il programma interprete per questo viene inserita una riga all'inizio del file script che dichiara quale interprete usare:
#!<nome-del-programma-interprete>
Nel caso di uno script in bash la prima riga sarà:
#!/bin/bash
Variabili
La shell permette di definire mediante lo strumento delle variabili di ambiente alcuni parametri che influenzano il comportamento dei vari programmi. I valori assegnati a queste variabili sono delle stringhe. Le variabili di ambiente più importanti sono:
HOME il valore di questa variabile è quella della home-directory dell'utente
PATH lista di nome di directories dove la shell, dopo l'inserimento di un comando, cerca il programma da eseguire
DISPLAY definisce lo schermo sul quale un programma X-Window aprirà le proprie finestre
TERM definisce le sequenze di comandi che saranno usate per comandare il terminale che state usando

Le variabili di shell sono stringhe di un solo carattere, il cui valore è visualizzabile mediante l'operatore $. La differenza tra variabili d'ambiente e di shell è che queste ultime non sono disponibili per i comandi in esecuzione come le prime, ma sono gestite unicamente all'interno della shell
# memorizza il numero di argomenti della linea di comando, che sono stati passati allo shell script
? memorizza il valore numerico di uscita dell'ultimo comando che è stato eseguito
0 memorizza il nome dello shell-script, che è stato introdotto
* memorizza tutti gli argomenti che sono stati introdotti sulla linea di comando
! contiene il numero dell'ultimo processo che è stato mandato in background con la &
- contiene i flag con cui è stata eseguita la shell

Programma ESEMPIO:
#!/bin/sh
echo "Numero parametri = "$#
echo "Nome del Programma = "$0
echo "Parametri introdotti = "$*

eseguendo il programma ESEMPIO dalla riga di comando in questo modo:
sh ESEMPIO dato1 dato2
otterremo:
Numero parametri = 2
Nome del Programma = ESEMPIO
Parametri introdotti = dato1 dato2

WEB RESOURCES
http://www.linux.org/docs/ldp/howto/Bash-Prompt-HOWTO/index.html Bash Programming
http://hemsidor.torget.se/users/d/Devlin/shell/ Bash Programming
http://www.linuxdoc.org/LDP/abs/html/ Advanced Bash-Scripting Guide