Tengo una tarea compleja que quiero convertir en un script de bash/shell. Aunque puedo utilizar la sintaxis $1
para hacer referencia a los argumentos que se le pasan, me gustaría contar con una solución general.
En otras palabras, quiero iterar por todos los argumentos que se le pasen al script, independientemente de cuántos sean.
Estás leyendo una traducción autorizada de la pregunta
How to iterate over arguments in bash script
planteada por Thelema
en StackOverflow.
Respuestas
Para hacer referencia a todos los argumentos del script, utiliza $@
de la siguiente manera:
for var in "$@" do echo "$var" done
Este script lo que hace es iterar por todos los argumentos y mostrarlos por pantalla. El comportamiento de $@
es similar a $*
, pero también funciona cuando se pasan argumentos con espacios en su interior. Ejemplo:
sh prueba.sh 1 2 '3 4' 1 2 3 4
@librosweb
21 septiembre 2014, 22:49