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

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
mateusz16
Sędziwy Jeż
Sędziwy Jeż
Posty: 70
Rejestracja: 04 wrz 2007, 19:44
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: KDE Plasma
Architektura: x86
Kontakt:

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

Post 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ł.
dawidgarus
Wytworny Kaczor
Wytworny Kaczor
Posty: 418
Rejestracja: 09 lut 2007, 23:17
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

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

Post autor: dawidgarus »

Kod: Zaznacz cały

#!/bin/sh
pidof $1 > /dev/null && $1
Awatar użytkownika
mateusz16
Sędziwy Jeż
Sędziwy Jeż
Posty: 70
Rejestracja: 04 wrz 2007, 19:44
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: KDE Plasma
Architektura: x86
Kontakt:

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

Post autor: mateusz16 »

nie dziala o_0
Awatar użytkownika
thalcave
Przyjaciel
Przyjaciel
Posty: 821
Rejestracja: 08 lis 2006, 12:17
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Architektura: x86

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

Post autor: thalcave »

Kod: Zaznacz cały

#!/bin/sh
ps -A | grep $1 > /dev/null && $1
GNU/Linux user
Na pytania na PW/e-mail nie udzielam odpowiedzi!
Szanujmy innych użytkowników!
Wesprzyj akcje: Temat rozwiązany -> dodajemy [solved]
Hagal
Sędziwy Jeż
Sędziwy Jeż
Posty: 41
Rejestracja: 11 sty 2009, 01:35
Płeć: Mężczyzna
Środowisko graficzne: Brak

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

Post 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 :)
Nie toleruję zmuszania do reklam...
dawidgarus
Wytworny Kaczor
Wytworny Kaczor
Posty: 418
Rejestracja: 09 lut 2007, 23:17
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

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

Post 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. ;)
Awatar użytkownika
thalcave
Przyjaciel
Przyjaciel
Posty: 821
Rejestracja: 08 lis 2006, 12:17
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Architektura: x86

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

Post autor: thalcave »

Faktycznie [Prezes] rozpędziłem się :)
Dzięki za poprawienie
GNU/Linux user
Na pytania na PW/e-mail nie udzielam odpowiedzi!
Szanujmy innych użytkowników!
Wesprzyj akcje: Temat rozwiązany -> dodajemy [solved]
dawidgarus
Wytworny Kaczor
Wytworny Kaczor
Posty: 418
Rejestracja: 09 lut 2007, 23:17
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

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

Post autor: dawidgarus »

do usunięcia.
Hagal
Sędziwy Jeż
Sędziwy Jeż
Posty: 41
Rejestracja: 11 sty 2009, 01:35
Płeć: Mężczyzna
Środowisko graficzne: Brak

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

Post 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
Nie toleruję zmuszania do reklam...
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 7 gości