Strona 1 z 1

[bash] prosty skrypt ktory uruchomi program X jezeli nie jest on uruchomiony

: 16 mar 2009, 17:48
autor: mateusz16
Mógłby ktoś naskrobać taki skrypcik ?? Ja ostatnio sie w to bawiłem z rok tamu i już nic nie pamietam. Chodzi o to zeby po wydaniu komendy

Kod: Zaznacz cały

check opera
program otwierał opere jeśli nie jest uruchomiona, a jeżeli jest to nic nie robił.

Odp: [bash] prosty skrypt ktory uruchomi program X jezeli nie jest on uruchomiony

: 16 mar 2009, 17:55
autor: dawidgarus

Kod: Zaznacz cały

#!/bin/sh
pidof $1 > /dev/null && $1

Odp: [bash] prosty skrypt ktory uruchomi program X jezeli nie jest on uruchomiony

: 16 mar 2009, 18:16
autor: mateusz16
nie dziala o_0

Odp: [bash] prosty skrypt ktory uruchomi program X jezeli nie jest on uruchomiony

: 16 mar 2009, 18:22
autor: thalcave

Kod: Zaznacz cały

#!/bin/sh
ps -A | grep $1 > /dev/null && $1

Odp: [bash] prosty skrypt ktory uruchomi program X jezeli nie jest on uruchomiony

: 16 mar 2009, 18:32
autor: Hagal
@thalcave:
Twój przykład ma poważny błąd.
Zobrazuję Ci go tak:

Kod: Zaznacz cały

,-[ 18:28:00 ]--[ pts/1 ]--[ ~ ]
`-[  Slawek  ] >>  ps -A | grep firefox
 3781 ?        00:00:00 firefox
 3799 ?        00:00:37 firefox-bin

,-[ 18:28:09 ]--[ pts/1 ]--[ ~ ]
`-[  Slawek  ] >>  ps -A | grep firefox >/dev/null

,-[ 18:28:14 ]--[ pts/1 ]--[ ~ ]
`-[  Slawek  ] >>
Wiesz o co chodzi? :P

A teraz "po mojemu" :

Kod: Zaznacz cały

#!/bin/bash
[ -n "$(ps -A | grep $1 2>/dev/null)" ] || exec "$1"
Pozdrawiam


P.S.
To nie jedyny błąd, ale drugi sam chyba znajdziesz :)

Odp: [bash] prosty skrypt ktory uruchomi program X jezeli nie jest on uruchomiony

: 16 mar 2009, 18:49
autor: dawidgarus
ech... powinno być || zamiast && w moim przykładzie. zbytnio się rozpędziłem, ale sprawdzałem i teraz działa.
edit: przykład thelcave też działa bardzo dobrze, jak się zmieni && na ||, więc nie rozumiem prezesa... swoją droga ja też tak najpierw napisałem, ale zmieniłem jak sobie przypomniałem o poleceniu pidof. ;)

Odp: [bash] prosty skrypt ktory uruchomi program X jezeli nie jest on uruchomiony

: 16 mar 2009, 18:51
autor: thalcave
Faktycznie [Prezes] rozpędziłem się :)
Dzięki za poprawienie

Odp: [bash] prosty skrypt ktory uruchomi program X jezeli nie jest on uruchomiony

: 16 mar 2009, 18:54
autor: dawidgarus
do usunięcia.

Odp: [bash] prosty skrypt ktory uruchomi program X jezeli nie jest on uruchomiony

: 16 mar 2009, 19:45
autor: Hagal
dawidgarus pisze:edit: przykład thelcave też działa bardzo dobrze, jak się zmieni && na ||, więc nie rozumiem prezesa...
Zrozumiesz jeśli pomyślisz :)
W przykładzie thalcave wykona się polecenie przekazane w parametrze $1, ale w tle ciągle będzie "pracował" skrypt - do czasu zakończenia procesu ze $1.

Odpalenie przez exec $1 uruchamia polecenie zawarte w $1 nie tworząc nowego procesu, lecz zastepując powłokę.


Pozdrawiam