Skocz do zawartości

Bash


nowy2008

Rekomendowane odpowiedzi

Witam:

 

Tworze sobie skrypt który odpytuje system czy dany proces chodzi.

chce aby chodził on następująco: odpalam skrypt. i na ekranie wyświetlają mi się procesy które chodzą i alarmuje mnie gdy jakiegoś brakuje

 

stworzyłem coś takiego ale niestety nie działa, pokazuje sie tylko wtedy jak proces jest a jak go brakuje nie ma zadnej informacji:/

 

#!/bin/ksh

bold='tput smso'

unbold='tput rmso'

clear

if test -e ps -fu uzytkownik | grep 'nazwa_proc1'; then echo $bold BRAK procesu nazwa_proc1 $unbold ;else ps -fu uzytkownik | grep 'nazwa_proc1' ;fi

echo

ktoś ma jakiś pomysł jak to rozwiązac?? domyslam się ze to blacha sprawa bo dopiero zaczynam programowac...

Odnośnik do komentarza
Udostępnij na innych stronach

Hm... "test -e <plik>" - sprawdzenie czy plik istnieje, a wyjście polecenia w żadnym wypadku nie jest plikiem ;)

 

[EDIT] taki przykład

#!/bin/ksh

ciag=`ps -fu waldo | grep bash | grep -v grep`
if [ "X${ciag}" != "X" ]
then
        echo "jest proces"
else
        echo "nie ma procesu"
fi

Jeśli będziesz chciał podawać polecenie jako parametr, czyli np. "skrypt.sh bash" to trzeba będzie trochę zmodyfikować.

Zwróć uwagę na ostatnie polecenie potoku "grep -v grep" - jeśli tego nie będzie to zawsze będziesz miał pozytywny wynik, bo zmienna "ciag" prawie zawsze będzie niepusta. Napisałem "prawie" bo czasem polecenie

 ps -fu waldo | grep nieistniejace_polecenie

nie zwraca nic, czyli jest puste i o dziwo zdarza się to dość często.

No i przeczytaj "man ksh" wyszukując części dot. "test" - tam jest napisane dlaczego "X${zmienna} != X" a nie samo "${zmienna}" != "" ;)

 

BTW dlaczego ksh a nie znacznie nowszy i bardziej elastyczny IMHO bash?

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...