-Iterando con nombres de ficheros con espacios en linux, la variable IFS:
Al hacer bucles for dentro de un script sobre los nombres de ficheros de un directorio, si los nombres de los ficheros no tienen espacios en blanco el bucle itera correctamente, pero si los nombres de los ficheros contienen espacios en blanco entonces el bucle parte los nombres de los ficheros.
Para que esto no pase en el «for» se puede usar la variable especial IFS, esta variable contiene los caracteres que son usados para partir las lineas en palabras que llegan desde la entrada estandar.
El valor por defecto de esta variable es espacio, .
Para usarla en un script la podemos guardar y luego restaurar:
#!/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en «\n\b»)
for f in *
do
echo «$f»
done
IFS=$SAVEIFS
0 comentarios