LinuxForum.Fans
Тема

Помогите написать функцию

Автор: zool 6 сообщений 1061 просмотров
29.11.2022 08:42 #438597

Привет All!
Задача такова:
требуется найти пользователя который открыл файл на виндовой шаре.
smbstatus -L |grep "filename" выводит в первой колонке пид процесса, который я после указываю в smbstatus -b |grep "пид"
как это все обернуть одной функцией с указанием имени файла в качестве параметра($1)? Чет не догоняю.

04.12.2022 02:47 · отредактировано #438608
zool написал:
Привет All!

ГРУ-ша отдыхает.

05.12.2022 10:53 #438611

Топик стартер ни разу не программист, но родил такой скрипт. Правда работает через раз. Русские имена с пробелами плохо ищет.

if [ -n "$1" ]
then
VAR1="$1"
FND=`smbstatus |grep -i $VAR1 |cut -f 1 -d ' ' `
echo "Ищем" $VAR1
echo "PID="$FND
smbstatus -b |grep $FND
else
echo " No parameters found. "
fi

05.12.2022 20:15 · отредактировано #438615

Программисты на профильных сайтах сидят :) Работа представленного скрипта у меня заканчивается вообще с кодом ошибки (program exited with code: 126)

05.01.2023 18:13 · отредактировано #438662

zool, для начала, вам больше подойдет опция ! -z.
[console]# -n - Returns true if str1 is greater than zero.
# -z - Returns true if str1 length is zero.
if [ ! -z "$1" ]; then[/console]
Таки вам надо же проверить наличие параметра?
В else надо наверное добавить диалог для ввода параметра, read -p или завершение скрипта с сообщением например?

P. S. Выполняйте команды по порядку без скрипта, если всё сработает, то уже пытайтесь писать скрипт.

Войдите или зарегистрируйтесь, чтобы ответить.