checkGroup.sh
Crea un script que contenga una función que compruebe si existe el grupo cuyo nombre se pasa por parámetro.
Solución propuesta
Este script falla…….
Falla porque hemos utilizado corchetes entre el grep. Hay que tener cuidado con los condicionales en bash y no acostumbrarse a utilizar corchetes para todo. Esto puede venir provocado por el uso de otros lenguajes de programación como C, Java o Php en los que se escribe la condición entre paréntesis.
Recuerda!! La condición de un comando if y de un comando while es la ejecución de un comando (o función) que se cumplirá si al ejecutar ese comando se devuelve un valor de retorno 0 o ejecución correcta.
Solo utilizamos los corchetes cuando queramos ejecutar el comando test, y test solo lo ejecutamos para realizar:
- Comparaciones de cadenas
- Comparaciones de números enteros
- Comparación de fichero: existe, existe y es un fichero, existe y es un directorio, tenemos permiso de lectura, etc.
El código correcto quedaría así.
Está bien, pero habría que perfilarlo, porque va a mostrar información no solicitada y no controlamos los parámetros.
Redirigimos 🙂
Un poquito mejor.
Versión 02
Vamos a modificar el script para que reciba una lista de parámetros variable. Para cada valor pasado por parámetro comprobaremos si existe el grupo de ese parámetro.
Para ello seguiremos utilizando la función checkGroup que hemos creado 🙂
Solución propuesta
Vamos a probar
Versión 03
Ahora vamos a recibir una lista variable de parámetros, pero como mínimo tendrá dos parámetros. Si no se pasan como mínimos dos parámetros mostraremos un mensaje de error.
El primer parámetro es el nombre de un grupo. El segundo y sucesivos son nombres de usuarios.
El script comprobará si el grupo existe o no. Si el grupo no existe mostraré un mensaje advirtiendo de ello. Si el grupo existe, el script comprobará para cada uno de los nombre de usuarios pasados por parámetro si el usuario es miembro o no del grupo.
Se valorará el uso de funciones para realizar las comprobaciones.
Ayuda: Comando shift. Echa a la ayuda de este comando.
Solución propuesta
Vamos a ver para que vale shift
De esta forma, cogemos primero el parámetro uno y después desplazamos para poder recorrer el array $@
Las funciones
Vamos a probar
Dejar una respuesta