educación, informática y demás

Shell scripts

Usar parámetros

Uso habitual: Valores según su posición

Este uso consiste en que cada parámetro posicional tiene un valor especifico. Por ejemplo el primer parámetro del script será el nombre de un usuario y el segundo parámetro el de un grupo.

Sabemos qué uso vamos a dar a cada parámetro en función de su posición.

Dentro de nuestro script, lo primero que tenemos que hacer es asignar cada parámetros que vayamos a utilizar a una variable que nos ayude a comprender y razonar sobre el dato que estamos recibiendo.

Ejemplos

Ejemplo01 – Usuario y grupo

Crea un script que reciba por parámetro el nombre de un usuario y de un grupo.

El script mostrará los valores de cada parámetro por pantalla.

Ejemplo02 – Usuario, ruta de fichero y mensaje

Crea un script que reciba tres parámetros en este orden: el nombre de un usuario, la ruta de un fichero y un mensaje.

Tan solo mostrará los valores de cada parámetro por pantalla.

Vamos a ejecutarlo

Que pasa si no le pasamos algún parámetro o si el mensaje no lo ponemos entre comillas.

Al poner entre comillas una cadena de caracteres estamos indicando al interprete de comandos que toda esa cadena de caracteres es un único parámetro. Realmente, el interprete de comandos no tendrá en cuenta los espacios que están dentro de las comillas.

Usando listas de parámetros por igual

Habrá ocasiones en que sea interesante recibir una lista variable de parámetros. Podemos recibir cero, uno o varios valores por parámetros. Todos los parámetros son del mismo tipo de dato, por ejemplo una lista de usuarios, de grupos, de ficheros, etc.

Lo que haremos en nuestro script será recorrer esa lista de parámetros para llevar a cabo alguna operación con cada uno de ellos.

Para recorrer la lista de parámetros utilizamos el comando for. Con el comando for podemos recorrer una lista de elementos.

Ejemplos

Ejemplo 01 – Lista de nombres de usuario

Crea un script lista01.sh que reciba una lisa de usuarios y los muestre por pantalla. Para cada usuario, mostraremos en pantalla la etiqueta «Usuario: » seguida del nombre del usuario.

Vamos a utilizar a poner $@ para probar.

Si no le pasamos ningún parámetro, la lista de parámetros está vacía y el bucle for no se ejecuta.

Según la ayuda del comando for, si no especificamos un grupo o conjunto con in PALABRAS, el comando for utiliza in $@.

Esto debería funcionar exactamente igual que antes…

Usando algunos parámetros posicionales y lista de parámetros

Habrá ocasiones en las que recibamos algún parámetro posicional y después una lista variable de parámetros, que pude ser obligatoria u opcional.

En este caso tendremos que utilizar una aproximación mezcla de las dos anteriores. Por un lado asignaremos los parámetros posicionales obligatorios a variables y después recorreremos la lista variable realizando la operación necesaria.

Primero obtendríamos los parámetros posicionales y después, gracias al comando shift podemos desplazar tantos parámetros a la izquierda de la lista de parámetros como sean necesarios para quedarnos tan solo con la lista variable de parámetros.

Ejemplos

Ejemplo 01 – Grupo y usuarios

Crea un script llamado listaParam01.sh que recibirá el nombre de un grupo y una lista variable de nombre de usuarios.

El script mostrará para cada usuario, el nombre del grupo y el nombre del usuario.

Ejemplo – listaParam02.sh

Crea un script listaParam02.sh que recibirá por parámetro la ruta de un directorio, el nombre de un grupo, el nombre de un usuario y una lista variable de nombres de ficheros.

El script deberá mostrar el para cada fichero el nombre del usuario y del grupo, seguido de la ruta absoluta compuesta por la ruta del directorio seguida del nombre del fichero.

Ejemplo de ejecución:

Código fuente

listaParam03

Dejar una respuesta