<Anterior | Contenido | Siguiente>
Recapitulación
Con nuestro conocimiento de la para comando, ahora aplicaremos las mejoras finales a nuestro página_info_del_sistema texto. Actualmente, el informe_home_space la función se ve así:
report_home_space () {
si [[$ (id -u) -eq 0]]; luego gato << - _EOF_
Utilización del espacio en el hogar (todos los usuarios)
$ (du -sh / inicio / *)
_EOF_
más
gato << - _EOF_
Utilización del espacio en el hogar ($ USER)
$ (du -sh $ INICIO)
_EOF_
fi regreso
}
report_home_space () {
si [[$ (id -u) -eq 0]]; luego gato << - _EOF_
Utilización del espacio en el hogar (todos los usuarios)
$ (du -sh / inicio / *)
_EOF_
más
gato << - _EOF_
Utilización del espacio en el hogar ($ USER)
$ (du -sh $ INICIO)
_EOF_
fi regreso
}
A continuación, lo reescribiremos para proporcionar más detalles para el directorio de inicio de cada usuario e incluiremos el número total de archivos y subdirectorios en cada uno:
report_home_space () {
report_home_space () {
formato local = "% 8s% 10s% 10s \ n"
local i dir_list total_files total_dirs tamaño_total nombre_de_usuario
si [[$ (id -u) -eq 0]]; luego dir_list = / home / * user_name = "Todos los usuarios"
más
dir_list = $ HOME user_name = $ USER
fi
eco " Utilización del espacio en el hogar ($ user_name) "para i en $ dir_list; hacer
archivos_total = $ (encontrar $ i -tipo f | wc -l) total_dirs = $ (encontrar $ i -tipo d | wc -l) tamaño_total = $ (du -sh $ i | cortar -f 1)
eco " $ i " eco " "
printf "$ formato" "Dirs" "Archivos" "Tamaño" printf "$ formato" "----" "-----" "----"
printf "$ formato" $ total_dirs $ total_files $ total_size echo " "
regreso hecho
}
formato local = "% 8s% 10s% 10s \ n"
local i dir_list total_files total_dirs tamaño_total nombre_de_usuario
si [[$ (id -u) -eq 0]]; luego dir_list = / home / * user_name = "Todos los usuarios"
más
dir_list = $ HOME user_name = $ USER
fi
eco " Utilización del espacio en el hogar ($ user_name) "para i en $ dir_list; hacer
archivos_total = $ (encontrar $ i -tipo f | wc -l) total_dirs = $ (encontrar $ i -tipo d | wc -l) tamaño_total = $ (du -sh $ i | cortar -f 1)
eco " $ i " eco " "
printf "$ formato" "Dirs" "Archivos" "Tamaño" printf "$ formato" "----" "-----" "----"
printf "$ formato" $ total_dirs $ total_files $ total_size echo " "
regreso hecho
}
Esta reescritura aplica gran parte de lo que hemos aprendido hasta ahora. Seguimos probando el superusuario, pero en lugar de realizar el conjunto completo de acciones como parte del if, establecemos algunas variables que se usarán más adelante en un bucle for. Hemos agregado varias variables locales a la función y hemos hecho uso de Printf para formatear parte de la salida.