


Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
esercizi bash per il corso di sistemi operativi
Tipologia: Schemi e mappe concettuali
1 / 4
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!



#!/bin/bash set -euo pipefail
usage() { echo "Uso: $0 FILE" >&2; }
if [[ $# -ne 1 ]]; then usage exit 2 fi
file="$1" if [[! -f "$file" ||! -r "$file" ]]; then exit 1 fi
wc -l < "$file"
#!/bin/bash set -euo pipefail [[ $# -eq 1 ]] || { echo "Uso: $0 FILE" >&2; exit 2; } f="$1" [[ -r "$f" ]] || exit 1
tr -cs '[:alnum:]' '\n' < "$f"
| tr '[:upper:]' '[:lower:]'
| sort
| uniq -c
| sort -nr
| head -n 10
#!/bin/bash set -euo pipefail
[[ $# -eq 2 ]] || { echo "Uso: $0 DIR ORE" >&2; exit 2; } dir="$1"; hours="$2"
[[ -d "$dir" ]] || exit 1 [[ "$hours" =~ ^[1-9][0-9]*$ ]] || { echo "ORE deve essere intero positivo" >&2; exit 2; }
find "$dir" -type f -mmin "-$((hours*60))" -print
Esercizio 4 — Leggere CSV: somma per colonna (awk)
#!/bin/bash set -euo pipefail [[ $# -eq 1 ]] || { echo "Uso: $0 FILE.csv" >&2; exit 2; } f="$1" [[ -r "$f" ]] || exit 1
awk -F',' ' NR==1 { for (i=1;i<=NF;i++) if ($i=="amount") col=i if (!col) { exit 3 } next } { gsub(/^[ \t]+|[ \t]+$/, "", $col) sum += $col } END { printf("%.2f\n", sum) } ' "$f"
Esercizio 5 — Funzioni: log + livelli + timestamp
#!/bin/bash set -euo pipefail
log() { local level="$1"; shift case "$level" in INFO|WARN|ERROR) ;; ) level="INFO" ;; esac local ts ts="$(date '+%F %T')" echo "$ts [$level] $" >& }
log INFO "Avvio" log WARN "Questo è un warning" log ERROR "Qualcosa è andato storto"
Esercizio 6 — Trap: cleanup file temporanei
#!/bin/bash set -euo pipefail
tmp="$(mktemp)" cleanup() { rm -f "$tmp"; } trap cleanup EXIT INT TERM
echo "dati temporanei" > "$tmp" echo "Creato: $tmp" >&
false
#!/bin/bash set -euo pipefail [[ $# -eq 1 ]] || { echo "Uso: $0 LOGFILE" >&2; exit 2; } logf="$1" [[ -r "$logf" ]] || exit 1
total=$(wc -l < "$logf") errcount=$(grep -c "ERROR" -- "$logf" || true)
echo "Totale righe: $total" echo "Righe ERROR: $errcount" echo "Top 5 moduli (solo ERROR):"
grep "ERROR" -- "$logf"
| sed -n 's/.[([^]]+)]./\1/p'
| sort | uniq -c | sort -nr | head -n 5