Это то, что я обычно использую. Но мне нужно рекурсивно найти расширение с, then, и else. Проблема с этим в том, что оно не рекурсивное.
if ls $HOME/Downloads/*.ext >/dev/null 2>&1
then
:
else
:
fi
решение1
Используйте find
вместо ls. Если у вас есть GNU find, вы можете использовать -quit
для выхода после первого совпадения. Затем просто проверьте, вернул ли он какой-либо результат.
Скрипт будет выглядеть примерно так:
if [ -n "$(find $HOME/Downloads -name '*.ext' -print -quit | head -n 1)" ]
then
:
else
:
fi
Используйте -iname вместо -name для выполнения поиска без учета регистра.