Esercizio 1
Scrivere uno script myand che emula il comportamento dell’operatore && (chiaramente senza utilizzarlo). Cioe’
myand c1 c2 c3 … cn
esegue il comando ci
se i comandi c1….ci-1 sono terminati con exit status 0. Il comando
termina al primo fallimento (exit status diverso da 0) di un comando nella
lista.
Scrivere uno script concat file
i j che
concatena i file con nome file-i, file-i+1, . . . , file-j, scrivendo il risultato in file.
Hint: utilizzate cat, >> e seq (per generare una sequenza di
numeri)
Scrivere uno script che implementa il seguente comando
sos ext
che rimpiazza ogni occorrenza della stringa “bash” con la “shell” nel contenuto di ogni file con estensione .ext nella directory corrente.
Generalizzare ora il comando definendo il comando psos
psos stringa1 stringa2 ext
che rimpiazza ogni occorrenza di stringa1 con stringa2 nel contenuto di ogni file con estensione .ext nella directory corrente.
Effettuare
tutti i controlli necessari per il buon funzionamento dello script.
Hint: Utilizzate il comando sed con l’istruzione di sostituzione s/ / /g di sed.
Attenzione all’uso del quoting nella gestione dei parametri (vedi manuale per
uso sed)
Vedi
sezione C.2 della Guida avanzata
Esercizio 4
Scrivete uno script lpath che elenca i
percorsi indicati nella variabile PATH, uno
per riga (si ricordi che in PATH i vari
percorsi sono separati da “:”).
Hint: usate l’operatore ${ <variabile>comando
} per lavorare sulle stringhe (vedi
comando %w (%%w) che toglie la piu corta(lunga) occorrenza del pattern w dal
valore di variabile.
Vedi Sezione 9.2 (manipolazione stringhe) della Guida avanzata