El siguiente fragmento de bash funciona muy bien cuando en realidad hay *.txt
Archivos en el directorio.
for txt in *.txt
do
echo "loading data from $txt"
done
Cuando no hay, lo literal *.txt
cae en el bucle como $ txt (no es bueno).
¿Cómo cambio este código para que cuando no haya *.txt
archivos, el do ... done
bloque es omitido?
[ "*.txt" != '*.txt' ]
siempre es falso: ambas cadenas están entre comillas, por lo que no se comprueba ninguna coincidencia. Si eliminas las comillas de una ... tiene otros problemas.
files=$(echo *.txt)
y entonces: if [ "${files}" != '*.txt' ] ; then
.
if [ "*.txt" != '*.txt' ] ; then do loop here ; fi