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.