scripts script resueltos programas programacion pasar parametros espaƱol ejercicios ejemplos comandos shell

resueltos - pasando argumento que contiene espacio en shell script



scripts linux ejercicios resueltos (1)

Por alguna razón, necesito mi script para poder aceptar argumentos con caracteres de espacio. Si por ejemplo tengo un script de la siguiente manera,

for SOME_VAR in $@ do echo "$SOME_VAR" cd "$SOME_VAR" done;

si paso argumentos al script (asumiendo que se llama foo.sh)

sh foo.sh "Hello world"

Estoy esperando que el script imprima Hello world y cambie el directorio a "Hello world". Pero me sale este mensaje de error en su lugar

hello cd: 5: can''t cd to hello world cd: 5: can''t cd to world

entonces, ¿cómo paso exactamente el argumento con el espacio char a un comando en un script de shell?


También debe envolver el $@ entre comillas: "$@"

Esto le dice al shell que ignore los espacios en los argumentos; no convierte todos los argumentos en una cadena muy larga.