The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Shell скрипт с использованием fuser..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Shell скрипт с использованием fuser..."  
Сообщение от Arpo email(??) on 01-Ноя-07, 09:39 
Доброго времени суток.

Есть такой вопрос. В Shell скрипте надо проверит открыт фаил или нет. Думаю исползовать fuser, но проблема в том что вывод этой команды не получается перенаправить.

Вот стандартный вывод.
# fuser PP.20071030.00080
PP.20071030.00080:      786o
Что значит что фаил используется процессом у которого PID 786.
Из этой строки мне нужен только номер процесса, делаю так.
# fuser PP.20071030.00080|awk '{print $1}'
по всей логике я должен получить 786o, но получаю:
PP.20071030.00080: o
786
Я попробовал так.
# fuser PP.20071030.00080>/dev/null
Тут былобы логично еслиб я не получил никакого вывода, но я получил это:
PP.20071030.00080: o
Тоесть STDOUT тут только номер процесса, а чтоже тогда все остальное и как это заглушить?

Заранее спасибо.

P.S. Система Solaris 10(x86).

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Shell скрипт с использованием fuser..."  
Сообщение от phpcoder email(??) on 01-Ноя-07, 11:55 
[...]
>Из этой строки мне нужен только номер процесса, делаю так.
># fuser PP.20071030.00080|awk '{print $1}'

Видать он ещё и на stderr пишет. Попробуйте так:

# fuser PP.20071030.00080 2>&1 | awk '{print $1}'


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Shell скрипт с использованием fuser..."  
Сообщение от tx2 on 01-Ноя-07, 11:58 
по логике тогда остальное выводится не на stdout а на stderr...
солярки под рукой нету - проверить не на чем.
но перенаправить stderr в stdout обычно можно примерно так:
somecommand 2>&1
тогда весь вывод команды будет в stdout..

ну а в данном конкретном случае, можно, кажется(не проверял) сделать иначе:
fuser PP.20071030.00080 2> /dev/null

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Shell скрипт с использованием fuser..."  
Сообщение от Arpo email(??) on 01-Ноя-07, 12:56 
>по логике тогда остальное выводится не на stdout а на stderr...
>солярки под рукой нету - проверить не на чем.
>но перенаправить stderr в stdout обычно можно примерно так:
>somecommand 2>&1
>тогда весь вывод команды будет в stdout..
>
>ну а в данном конкретном случае, можно, кажется(не проверял) сделать иначе:
>fuser PP.20071030.00080 2> /dev/null

Да действительно эта глупая программа печатает в STDERR. Какой умник это придумал??
Спасибо всем....

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Shell скрипт с использованием fuser..."  
Сообщение от tx2 on 03-Ноя-07, 00:52 
кстати... имхо наоборот толково...
смотри:
нужные тебе данные идут в stdout, а прочая инфа - в stderr...

хотя - нестандартно, в некоторой степени

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру