Всех приветствую, нужна помощь с скриптом. ОС Alt Linux Рабочая станция Linux host-15tstalt 5.10.128-std-def-alt1 #1 SMP Fri Jul 8 14:39:36 UTC 2022 x86_64 GNU/Linux Имеется скрипт с таким содержимым.
#! /bin/bash
source /media/dirlab/coutlistuser
find /media/dirlab -user $43 -exec sh -c "file '{}' | grep -q 'ELF'" \; -print | wc -l
Файл /media/dirlab/coutlistuser это автоматически генерируемый файл с содержимым по пользователям. Нужен для того что бы проверять появились пользователи новые или нет. Выглядит примерно так
p1=polkitd
p2=_avahi
p3=_ldm
p4=_chrony
.....
p49=mxvel
p50=ivanov
p51=petrov
p52=sidorov
p53=pupkin
find /media/dirlab - поиск в нужном нам каталоге -user $43 -exec sh -c «file ‘{}’ | grep -q ‘ELF’» ; -print - условие при котором происходит поиск исполняемых ELF файлов по владельцам. Источник с пользователями как раз для этого. -print | wc -l - вывод численного количества ELF файлов.
Возникает несколько ошибок/задач которые не знаю как исправить.
- Если переменная с пользователями ($p54 и больше) превышает количество существующих пользователей в системе появляется ошибка
find: ‘-exec’ is not the name of a known user
Понятно почему появляется, но нужно что бы информация о несуществующем пользователе не выводилась.
- Если пользователь существует но нет файлов ELF в каталоге скрипт указывает количество файлов
0
Это пустое количество тоже выводить не нужно.
Пробовал обернуть это в значения «если то»
#!/bin/bash
source /media/dirlab/coutlistuser
if
COUNT=`find /media/dirlab -user $p51 -exec sh -c "file '{}' | grep -q 'ELF'" \; -print | wc -l `
then [ $COUNT -eq 0 ]
else
echo "$p51 $COUNT"
fi
Но вывод информации вообще перестает происходить даже если ELF файлы есть.
Кто знает как сделать 1 и 2 пункт?