Sei sulla pagina 1di 4

Metacaratteri:

* = Qualsiasi stringa di 0 o pi caratteri


? = Qualsiasi carattere singolo
[<a><b><c>] = Qualsiasi carattere presente nella lista
{<a>,<b>,<b>} = Qualsiasi stringa presente nella lista
> <string> = Ridirezione dell'output
>> <string> = Ridirezione dell'output (append)
< = Ridirezione dell'input
<< <delim> = Ridirezione dell'input sulla shell in modo che posso inserire
pi righe contemporaneamente senza avere bisogno di una file, <delim> indica quando
mi devo fermare
| = Pipe
; = Sequenza di comandi
|| = Esegue un comando se quello precedente fallisce
&& = Esegue un comando se quello precedente ha successo
(<a>;<b>;<c>) = Raggruppamento di comandi da usare successivamente
# = Commento
\ = Escape
! = Ripetizione dei comandi memorizzati nell'history list

Si pu fare in modo che i metacaratteri non siano interpretati in modo speciale


dalla shell e fare perdere il loro significato:
- Fare il metacarattere \ di escape, il carattere che lo segue perde di
significato
- Racchiudere la stringa tra i singoli apici '<meta>', oppure se si tratta di
caratteri di abbreviazione, anche fra doppi apici

La prima riga di uno script shell :

#! /bin/sh

I parametri di uno script quando passati sono posizionali e si recuperano


antecedendo il $ ad un carattere speciale:
- {0, 1, ... , n} -> $0, $1, .. $n -> in 0 sta il nome dello script, negli
altri numeri i parametri in ordine posizionale
- # -> $# il numero di argomenti, escluso 0
- @ -> $@ l'insieme di tutti gli argomenti dati in input, escluso 0

Per ottenere lo stdout di un comando nello script si deve scrivere il comando tr


`<comando>` (AltGr + ')

Il comando shift scala la lista dei parametri, quando eseguito ad esempio il


parametro che stava in $2 passa in $1 e cos via. Anche $# diminuisce

Comando test: Serve a valutare una codizione, restituisce 0 se ha successo, 1


altrimenti.

test <condizione>

o in alternativa pu essere scritto tra parentesi quadre omettendo laparola


chiave test, attenzione agli spazi!

[ <condizione> ]

<condizione> un confronto fra valori numerici, tipi di file e stringhe:


- Confronto tra numeri
N <op> M
<op> pu assumere:
-eq : =
-ne : !=
-gt : >
-lt : <
-ge : >=
-le : <=

- Confronto sul tipo del file:


<op> <nomefile>

<op> pu assumere:
-e :file esiste
-s :file esiste e non vuoto
-f :file standard
-x :file eseguibile
-d :directory
-w :si hanno i permessi di scrittura
-r :si hanno i permessi di lettura

- Confronto tra stringhe


S <op> R

<op> pu assumere:
=
!=

oppure: <op> S

<op> pu assumere:
-z :la stringa ha lunghezza nulla
-n :la stringa non ha lunghezza nulla

Le condizioni possono essere concatenate fra di loro con operatori logici:

... <condizione> <op> <condizione> ...

<op> pu assumere:
-a : AND logico
-o : OR logico
! : Negazione

Negli script ci sono anche le strutture di controllo: for, while, until, if

- Costrutto "for"

for <variabile> in <lista di stringhe separate da uno spazio e


terminante per \n>
do
<istruzioni>
done

- Costrutto "if"

if <comando>
then
<istruzioni>
else
<istruzioni>
fi

- Costrutto "while"

while <comando>
do
<istruzioni>
done

Se <comando> viene eseguito con successo allora vengono eseguite le


<struzioni>

- Costrutto "while"

until <comando>
do
<istruzioni>
done

Se <comando> NON viene eseguito con successo allora vengono eseguite le


<struzioni>

Costrutto del case:

case <variabile> in
<stringa 1>) <istruzione 1>;;
<stringa 2>) <istruzione 2>;;
<stringa 3>) <istruzione 3>;;
esac

<stringa x> pu essere *, indica il caso di default

Il comando expr valuta una espressione aritmetica, attenzione agli spazi!:

expr <operando1> <op> <operando2>

<op> pu assumere:
+
-
/
%
\* (il per deve essere sempre usato in combinazione con escape)

Uno script pu essere reso interattivo con il comando read per memorizzare una
stringa da stdin in una variabile a tempo di esecuzione:

read <variabile>

Le istruzioni di uno script possono essere raggruppate in funzioni per poi essere
richiamate:
<nome_funzione>(){
<istruzioni>
}

//per richiamare una funzione si usa solo:


<nome_funzione>

Potrebbero piacerti anche