¿Cómo pasar todos los parámetros de un script bash a otro script/programa?

publicado por: Anonymous

Quiero pasar todos los parámetros que recibe un script bash a otro script o programa. Pero no quiero pasarle el parámetro 0, que contiene el nombre con que ha sido invocado el script bash.

Si supiese que lo invocan con 3 parámetros tal que así:

mi_script a b c

podría usar el siguiente script:

#!/usr/bin/env bash
otro_script_o_programa "$1" "$2" "$3"

Pero eso no me sirve si el script va a recibir un número arbitrario de parámetros, que puede incluso ser ninguno.
Es importante que se trate correctamente los parámetros que contienen espacios, tabuladores, etc.

solución

Para eso se usa “[email protected]” que significa “todos los parámetros que recibí”.

En tu caso, el contenido de mi_script sería

#!/usr/bin/env bash
otro_script_o_programa "[email protected]"

Edit: originalmente había propuesto utilizar [email protected] de manera no entrecomillada, lo cual lleva a que, dado un parámetro con la forma de un string entrecomillado, los espacios dentro de éste harán que cada palabra se considere un nuevo parámetro. Con la opción “[email protected]” esto no sucede y se pasa literalmente cada parámetro entrecomillado a la siguiente función.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *