Я пытался найти папки в моей музыкальной коллекции, которые не содержат mp3-файлов (в некоторых есть только обложки альбомов, плейлисты и тому подобное). Так что у меня было что-то подобное в сценарии оболочки.
#!/bin/bash
for DIR in *
do
[[ -d "${DIR}" ]] || continue
cd "${DIR}"
ls *.mp3 > /dev/null 2>&1
if [[ "$?" != "0" ]]
then
echo $DIR has no MP3 files!
continue
fi
cd ..
done
Тем не менее, несмотря на то, что нужно пройти через много папок, этот сценарий проверяет только первую папку перед выходом ... почему это так? Это похоже на то, как будто оператор continue
внутри if
выходит из цикла.