Cuando recorremos un directorio con ficheros cuyo nombre puede que contenga espacios en blanco (algo muy habitual si descargamos vídeos con youtube-dl), no funciona el típico:
#!/bin/bash
directorio="midirectorio"
for i in $(ls $directorio)
do
echo $i
done
Ni siquiera serviría entrecomillar el $i, ya que no le llegaría el nombre del fichero al recortarse en el for.
La solución es cambiar antes de hacer el for el separador de campo con:
IFS='
'
Quedando el script así:
#!/bin/bash
directorio="midirectorio"
IFS='
'
for i in $(ls $directorio)
do
echo $i
done
Guardad este artículo en favoritos. Es una de esas piedras en las que todos tropezamos una y otra vez. A menos yo. Pero ya tengo la chuleta y así ya no tendré que mirar una y otra vez scripts antiguos.
¡NO SIRVE!