Как возвратить true из find
Подскажите как сделать чтобы команда find возвращала TRUE и FALSE для оператора IF?
Пробовал так:
if find . -type f -regextype egrep -regex '.{150}.*' | wc -l;
then echo "Найдены файлы с недопустимой длиной имени. СТОП.";
else
echo "Продолжаем работать";
fi
Из расчета, что TRUE != 0, а FALSE = 0. Но не получается прервать программу при результате find отличным от 0.
Ответы (1 шт):
Автор решения: eri
→ Ссылка
if [ $(find . -type f -regextype egrep -regex '.{150}.*' -print -quit) ];
$() - кладет вывод программы в перемнную
[] - делает проверку переменной на true\false (пусто - не пусто в данном случае)
-quit потому что в вашем коде нет смысла искать дальше, а достаточно одного файла
-print чтоб имя файла вывелось на stdout и попало в переменную