Iterando con nombres de ficheros con espacios en linux, la variable IFS

por | Dic 24, 2015 | GNU / Linux

-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

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Blog de Neodoo Microsystems
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles. Puedes encontrar más información en nuestra Política de privacidad y Política de cookies.