Ejercicio 1
Vamos a crear un script llamado muestraInfo.sh que mostrará en pantalla la siguiente información en líneas distintas
- La fecha actual, ojo solo la fecha.
- La hora actual, ojo solo la hora.
- El nombre del usuario actual. Podemos utilizar una variable de entorno (USER)
- Información de permisos, propietario y grupo del directorio personal del usuario actual, no de su contenido. Podemos usar una variable de entorno (HOME)
- El resumen de ocupación del directorio personal del usuario actual.
Algoritmo
Usando lenguaje natural vamos a escribir en la secuencia apropiada las acciones que debemos llevar a cabo para solucionar el script que nos están pidiendo.
- Mostrar fecha actual
- Mostrar hora actual
- Mostrar nombre del usuario
- Mostrar información de permisos, propietario y grupo del directorio personal del usuario no de su contenido.
- Mostrar el resumen de ocupación del directorio personal del usuario
Este script no es más que una secuencia de comandos. ahora tendremos que «traducir» cada acción por uno o varios comandos que lo lleven a cabo.
Comandos necesarios
¿Como mostrar la fecha y solo la fecha?
El comando es du, así que consultamos la ayuda de du.
No sabemos que significan los números y además me está mostrando información de ocupación de todo el contenido del directorio.
Queremos que se muestre información de ocupación en un formato comprensible por humanos.
Mola, pero necesitamos algo más… queremos que nos de el resultado resumido de la ocupación del directorio sin mostrar información de cada uno de los ficheros y directorios que contiene. Es decir, un resumen:
Escribimos el script.
Le damos permiso de ejecución al fichero.
Ahora lo ejecutamos a ver que pasa.
Ejercicio 2
Queremos ampliar el uso del script para poder mostrar información del usuario que nosotros queramos, no solo del usuario actual.
De esta forma, el cambio en el script será que deberá mostrar el nombre del usuario elegido, información de permisos, propietario y grupo de su directorio personal y resumen de ocupación de su directorio personal.
Para simplificar este script, vamos a suponer que el directorio personal de un usuario está almacenado en /home y se llama igual que el usuario.
Está bien, pero hay algo que podríamos mejorar. Si nos fijamos la ruta del directorio personal del usuario almacenado en la variable usuario, la obtenemos a partir de la variable añadiendo /home/ al inicio. Este valor lo vamos a utilizar varias veces en nuestro script. Si quisieramos modificarlo más tarde, tendríamos que modificarlo en todos los sitios dónde aparezca.
Este tipo de valores que se repiten, podemos facilitar la legibilidad y mantenimiento del código, creando una variable que los contenga.
Ejercicio 3
Queremos que ahora, cada vez que se ejecute el script, solicite al operador el nombre del usuario con el que trabajar por teclado.
Para ello utilizaremos el comando read.
Vamos a probar el comando read.
Con esto podemos solicitar al usuario que nos proporcione información o datos que almacenaremos en una variable en tiempo de ejecución, cuando se está ejecutando el script.
Por supuesto tenemos que leer el valor de la variable usuario por teclado antes de usarla en el script. Por eso hemos ejecutado el comando read antes de la asignación de la variable homeDir, líneas 7 y 8 respectivamente.
Ejercicio 4
Mola, pero hemos pensado que nos gustaría que se pasara el nombre del usuario como parámetro. Es decir, el nombre del usuario se proporcionará en el momento de ejecutar el script como primer parámetro.
Dejar una respuesta