Completare le parti mancanti (sia codice che commento) del seguente script bash:
.... # shell da usare per l’interpretazione dello script if [ $# -ne 1 ]; then # (commenta il codice) ........ echo usa: $(basename $0) nomedirectory # ......... exit -1 fi dir=$1 if [ ! -d $dir ]; then # (commenta il codice) ......... echo "L'argomento $dir non e' una directory" exit 1; fi bdir=$(basename $dir) if [ -w ....... ]; then # il file esiste ed e scrivibile echo "il file $bdir.tar.gz esiste gia sovrascriverlo (S/N)?" read yn # (commenta il codice) ......... if [ "$yn" != "S" ]; then # .............. exit 0; fi rm -f $bdir.tar.gz fi echo "creo l'archivio con nome $bdir.tar.gz" tar cf $bdir.tar $dir ............... # appende l’output dello std-error nel file error.txt if [ ...... ]; then # controllo che il comando sia andato a buon fine echo "Errore nella creazione dell'archivio" exit 1 fi gzip $bdir.tar .......... # appende l’output dello std-error nel file error.txt if [ ...... ]; then # controllo che il comando sia andato a buon fine echo echo "Errore nella compressione dell'archivio" exit 1 fi echo "archivio creato con successo, il contenuto dell’archivio e':" tar tzvf $bdir.tar.gz ......... # redirige lo std-error sullo std-output exit 0
Scrivere uno script bash che prende “k>=2” nomi di file di ingresso e appende i primi “k-1” files nel file passato come ultimo argomento (k-esimo), scrivendo i file in ingresso nell'ordine da destra a sinistra (es. myscript.sh fileA fileB fileC – fileC conterra' in sequenza prima fileB e poi fileA).
Scrivere uno script bash che dati 2 file di testo in input (f1 ed f2) produce il seguente menu di scelta per l'utente:
1. rimuovere i file “f1” ed “f2”
2. archiviare i file “f1” ed “f2”
3. appendere il file “f1” al file “f2”
4. esci
Implementare le 3 opzioni e testare tutti i casi. Per l'opzione 1 chiedere conferma prima della rimozione dei file; per l'opzione 2 utilizzare i comandi tar
e gzip
in pipeline e produrre l'archivio compresso “f1f2.tar.gz”. Non utilizzare il builtin select
per implementare il menu.
Scrivere uno script bash che preso in input un nome di file testuale che contiene solo linee con il seguente formato:
1490127894 - 21 0 23 0 20 2 32 15 1 0 0 0 0 0 4 3084940 13570834 4 6 1490127936 - 7054 1 191 1 905 6 7167 125 12 0 0 0 0 0 5 7239070 16676254 12 1035 1490127944 - 8261 2 218 3 1086 8 8394 148 15 0 0 0 0 0 3 8287914 18773540 15 1036 ...
restituisce il valore massimo degli elementi nella colonna 17 e calcola la media degli elementi della stessa colonna.