<Precedenti | Contenuti | Succ.>
Riassumendo
Con la nostra conoscenza del da comando, applicheremo ora i miglioramenti finali al nostro pagina_info_sys sceneggiatura. Attualmente, il segnala_spazio_domestico la funzione si presenta così:
segnala_spazio_domestico () {
se [[ $(id -u) -eq 0 ]]; allora cat <<- _EOF_
Utilizzo dello spazio domestico (tutti gli utenti)
$(du -sh /home/*)
_EOF_
altro
gatto <<- _EOF_
Utilizzo dello spazio domestico ($USER)
$(du -sh $HOME)
_EOF_
ritorno fi
}
segnala_spazio_domestico () {
se [[ $(id -u) -eq 0 ]]; allora cat <<- _EOF_
Utilizzo dello spazio domestico (tutti gli utenti)
$(du -sh /home/*)
_EOF_
altro
gatto <<- _EOF_
Utilizzo dello spazio domestico ($USER)
$(du -sh $HOME)
_EOF_
ritorno fi
}
Successivamente, lo riscriveremo per fornire maggiori dettagli sulla directory home di ciascun utente e includere il numero totale di file e sottodirectory in ciascuna:
segnala_spazio_domestico () {
segnala_spazio_domestico () {
formato locale="%8s%10s%10s\n"
locale i dir_list file_totali directory_totali dimensione_totale nome_utente
se [[ $(id -u) -eq 0 ]]; allora dir_list=/home/* user_name="Tutti gli utenti"
altro
dir_list=$HOME nome_utente=$USER
fi
eco " Utilizzo dello spazio domestico ($user_name) " per i in $dir_list; fai
total_files=$(find $i -type f | wc -l) total_dirs=$(find $i -type d | wc -l) total_size=$(du -sh $i | cut -f 1)
eco " $io " eco " "
printf "$format" "Dirs" "Files" "Size" printf "$format" "----" "-----" "----"
printf "$format" $total_dirs $total_files $total_size echo " "
fatto ritorno
}
formato locale="%8s%10s%10s\n"
locale i dir_list file_totali directory_totali dimensione_totale nome_utente
se [[ $(id -u) -eq 0 ]]; allora dir_list=/home/* user_name="Tutti gli utenti"
altro
dir_list=$HOME nome_utente=$USER
fi
eco " Utilizzo dello spazio domestico ($user_name) " per i in $dir_list; fai
total_files=$(find $i -type f | wc -l) total_dirs=$(find $i -type d | wc -l) total_size=$(du -sh $i | cut -f 1)
eco " $io " eco " "
printf "$format" "Dirs" "Files" "Size" printf "$format" "----" "-----" "----"
printf "$format" $total_dirs $total_files $total_size echo " "
fatto ritorno
}
Questa riscrittura applica gran parte di ciò che abbiamo imparato finora. Continuiamo a testare per il superutente, ma invece di eseguire l'insieme completo di azioni come parte del if, abbiamo impostato alcune variabili utilizzate in seguito in un ciclo for. Abbiamo aggiunto diverse variabili locali alla funzione e abbiamo fatto uso di printf per formattare parte dell'output.