Решено: bash проблема пустой строки

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

volod
Сообщения: 28
ОС: Mandrake 10.1

Решено: bash проблема пустой строки

Сообщение volod »

Есть скрипт анализирующий наличие процесса в системе.

Вот исходный текст:

#========================================
#!/bin/bash

PR=$( ps aux | grep aaaaa.exe | head -n 1 | cut -b 10-14 )

if [ -z "$PR" ]
then
echo "Ok" # Искомая программа не запущена.
else
echo "ID: $PR " # Выдали номер процесса
fi

#========================================

Проблема в том, что если подряд несколько раз запустить этот скрипт,
(искомая программа не запущена) то он будет выдавать иногда сообщение об
отсутствии процесса, а иногда возвращать какой то номер которого нет реально в системе…

В чем здесь проблема?
Помогите пожалуйста эту штуку заставить работать.
Спасибо сказали:
allez
Сообщения: 2223
Статус: Не очень злой админ :-)
ОС: SuSE, CentOS, FreeBSD, Windows

Re: Решено: bash проблема пустой строки

Сообщение allez »

Можно так попробовать:

Код: Выделить всё

PR=$( ps aux | grep aaaaa.exe | grep -v grep | head -n 1 | awk '{print $2}' )


У вас grep отыскивает сам себя:

Код: Выделить всё

> ps aux | grep aaaaa.exe
10000     6963  0.0  0.0   2884   764 pts/8    R+   15:55   0:00 grep aaaaa.exe
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: Решено: bash проблема пустой строки

Сообщение Rootlexx »

volod писал(а):
02.08.2007 11:27
#!/bin/bash

PR=$( ps aux | grep aaaaa.exe | head -n 1 | cut -b 10-14 )

if [ -z "$PR" ]
then
echo "Ok"
else
echo "ID: $PR "
fi

Лучше так ;):

Код: Выделить всё

#!/bin/bash

procname="aaaaa.exe"
if ! /sbin/pidof -s "$procname" 2> /dev/null; then
        printf "Ok\n"   # No such process
fi
Спасибо сказали:
volod
Сообщения: 28
ОС: Mandrake 10.1

Re: Решено: bash проблема пустой строки

Сообщение volod »

Точно, блин… Скрипт сам создает новый процесс…
Спасибо всем :)
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Решено: bash проблема пустой строки

Сообщение sash-kan »

pgrep
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: