LINUX.ORG.RU

Сообщения maxvel911

 

Нужна помощь с bash скриптом, нужна отмена вывода ошибки

Форум — General

Всех приветствую, нужна помощь с скриптом. ОС 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 файлов.

Возникает несколько ошибок/задач которые не знаю как исправить.

  1. Если переменная с пользователями ($p54 и больше) превышает количество существующих пользователей в системе появляется ошибка
find: ‘-exec’ is not the name of a known user

Понятно почему появляется, но нужно что бы информация о несуществующем пользователе не выводилась.

  1. Если пользователь существует но нет файлов 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 пункт?

 , ,

maxvel911
()

RSS подписка на новые темы