Script 01 – Creando nombres de usuario
Vamos a crear un script que solicite nombres de usuario para almacenarlos en un fichero. El fichero de nombres de usuario deberá cumplir con ciertas restricciones:
- No debe contener nombres duplicados.
- La primera letra del nombre será mayúscula
Primera aproximación – versión simple
Esta primera aproximación va a permitir insertar datos en el fichero, no obstante, no comprueba si el nombre ya existía en el fichero ni se asegura de que la primera letra esté en mayúsculas.
Segunda versión
Vamos a enredar con el nombre del usuario. Podemos cambiar la primera letra con la ayuda de los filtros cut y tr.
De esta forma, el código nos quedaría como sigue en la función leeNombre
También podríamos utilizar el caracter especial ^ en la herrmienta ${} para cambiar el primer caracter de una cadena de texto a mayúsculas:
Las dos opciones funcionan, tan solo tenemos que elegir la que queramos.
El segundo cambio lo hacemos en la función guardaNombre. Como administrador, ¿cómo comprobarías si existe un nombre, por ejemplo Maria en el fichero nombres.txt?
El código completo quedaría como sigue:
Script 02 – Creando apellidos de usuarios
Ahora vamos a crear un script que solicite apellidos que utilizaremos más adelante. El script funcionará igual que el anterior, pero solicitando un apellido que insertará en un fichero llamado apellidos.txt en el directorio actual o de trabajo.
Al igual que en el caso anterior, la primera letra del apellido será mayúscula y solo insertará el apellido si éste no existe en el fichero de apellidos, evitando duplicados.
Solución propuesta
Si nos fijamos, el código del primer script y del segundo son casi idénticos.. salvo que en este caso el tipo de dato que estamos solicitando y almacenando será un apellido y que los datos se almacenan en un fichero llamado apellidos.txt
Podríamos crear un script genérico que reciba por parámetro el tipo de datos que estamos buscando y dónde lo vamos a almacenar.
Script 03 – La respuesta a tus plegarias
Script genérico para solicitar información al usuario por teclado y guardarla en el fichero cuya ruta se pasa en el segundo parámetro.
Tenemos un pequeño problema… a la hora de ejecutar el script obtenDatosUsuario.sh tenemos que indicar al bash que se encuentra en el directorio actual y además escribir la extensión. Nos gustaría poder ejecutar este script desde cualquier sitio, siempre que estemos con nuestro usuario y sin tener que mover el script al directorio /bin o /sbin.
Tenemos que mover el fichero a algún directorio del PATH de nuestro usuario
Ficheros ocultos del sistema: fichero .profile
Dentro de los sistemas de ficheros de sistemas Unix-Like podemos ocultar un fichero (o directorio) tan solo añadiendo un punto al inicio del nombre del fichero.
Con el comando ls podemos mostrar los ficheros ocultos, es más en la ayuda de ls nos cuenta cómo con la opción -a muestra todos los ficheros, incluso los ocultos con .
Tenemos un montón de ficheros ocultos tanto del sistema como de las distintas aplicaciones que estemos usando.
Vamos a echar un ojo al fichero .profile que es un fichero del sistema.
Según esas líneas marcadas en rojo, si existe ese directorio dentro den directorio personal del usuario lo añade al PATH, siendo el primer directorio dónde buscará bash comandos o aplicaciones a ejecutar.
Si tratamos de ejecutar el script no funcionara…
El tema es que tenemos que iniciar sesión de nuevo con el usuario para que se actualice la variable PATH al ejecutarse el fichero .profile
Dejar una respuesta