Voglio loop su tutti i file che corrispondono l'estensione jpg
o txt
. Io uso:Come abbinare niente se un nome di file glob non ha corrispondenze
for file in myDir/*.{jpg,txt}
do
echo "$file"
done
Problema: Se la directory contiene alcun file jpg a tutti, il circuito avrà un'iterazione con uscita myDir/*.jpg
. I thougth *
saranno sostituiti da un file arbitrario (e se non esiste alcun file non può essere espanso). Come posso evitare l'iterazione indesiderata?
Se un modello non ha corrispondenze, il comportamento/POSIX predefinito è quello di trattare il modello come una stringa letterale, piuttosto che ignorare o rimuovere il modello. – chepner
Non correlato alla domanda, ma si noti che le parentesi non fanno parte del modello. Sono una scorciatoia 'bash' per generare una serie di stringhe correlate, e come tali espandere alla stringa' myDir/*. Jpg myDir/*. Txt' prima che inizi la corrispondenza del modello. – chepner