Sei sulla pagina 1di 3

Metacaratteri

* stringa di 0 o più caratteri qualunque


? singolo carattere qualunque
[xyz] carattere tra quelli nelle parentesi
[a-d] carattere nel range tra il primo e il secondo parametro
# commento
\ il metecarattere successivo non viene interpretato come
tale
`` (backtick) all'interno viene eseguito il comando e restituisce
il risultato
$<PIPPO> il valore della variabile PIPPO

Espansione

\ il metecarattere successivo non viene interpretato come


tale
' ' protegge da qualsiasi forma di espansione
" " protegge da espansione, eccezioni: $ `` \

Cose Utili

| operatore per pipe


comando < file il comando prende l'input da file
comando > file scrive/sovrascrive il risultato del comando
comando >> file scrive in fondo, non sovrascrive

Variabili

$0,$1... e' l'equivalente di argv[0],argv[1]..., $0 e'


il comando
shift sposta gli argv verso sinistra, $1 viene perso
ma $0 no
set lista di variabili d'ambiente con relativi
valori
set [Stringa,stringa1,...] cambia gli $ dati in input da shell, non
può cambiare $0
$* insieme di tutte le variabili posizionali
($1,$2,...)
$# numero di argomenti passati (escluso $0)
$? valore (int) restituito dall'ultimo comando
$$ PID del processo in esecuzione

Output = vista su Shell

man <comando> manuale sul comando con relative opzioni


ls [-opzioni] da informazioni sui file/directory
grep <testo> [file,file1...] Ricerca di testo -> output
tee <file> Scrive input su file e output
sort [file,file1..] ordina le righe dei file ->output
rev <file> inverte ordine -> output
cut [-opzioni] <file> seleziona colonne -> output
awk '<pattern> { action }'[file,file1..] trovato il pattern esegue l'azione
expr consente operazioni, spazio tra argomenti `expr
1 + 1`
echo equivalente di printf
read <nomeVar,nomeVar1..> equivalente di scanf
pwd dà la directory in cui si sta lavorando

Test

test [-opzioni] <cosaDaControllare> 0=true, non-zero=false

test -f <nomefile> esistenza del file


test -d <nomefile> esistenza cartella
test -l <nomefile> diritto lettura file
test -z <stringa> stringa è nulla
test <stringa> stringa NON è nulla
test <stringa1> = <stringa2> stringhe uguali (spazi tra l'uguale
necessari)
test <stringa1> != <stringa2> stringhe NON uguali (spazi intorno
l'uguale necessari)
test <var1> -gt <var2> var1 > var2
test <var1> -ge <var2> var1 >= var2
test <var1> -lt <var2> var1 < var2
test <var1> -le <var2> var1 <= var2

"test <contenuto>" è equivalente a scrivere "[ contenuto ]" (badare agli spazi)

"[[ contenuto ]]" ammette metacaratteri e gli operatori &&, ||, <,> (maggiore e
minore solo per comparare stringhe)

If / Cicli

if condizione for (es. x in y ) inizia il ciclo


then se soddisfatta do fa le cose
elif else if done fine ciclo
then se soddisfatto else if
else else normale
fi fine if while (condizione/lista comandi)
do
done

until (lista comandi)


do
done