consideran este bucle simple:Bash simple - para f * en
for f in *.{text,txt}; do echo $f; done
Quiero hacer eco de los nombres de archivo sólo es válido. El uso de la variable $ f en un script funciona a la perfección a menos que no haya ningún archivo de esa extensión. En el caso de un conjunto vacío, $ f se establece en * .text y los ecos línea anterior:
*.text
*.txt
en lugar de eco nada. Esto crea un error si está tratando de usar $ f para cualquier cosa que esté esperando un nombre real de archivo real y en su lugar obtiene *.
Si hay archivos que coinciden con el comodín para que no sea un conjunto vacío todo funciona como me gustaría. p.ej.
123.text
456.txt
789.txt
¿Cómo puedo hacer esto sin los errores y sin complejidad aparente excesivo de la primera cadena coincidente $ f por un asterisco I?
Esto es exactamente lo que estaba buscando. ¡Gracias! – user1610022