ďťż
 
 
   Python - uruchomienie skryptu w bashu
 
 

Tematy

 
    
 

 

 

 

Python - uruchomienie skryptu w bashu





czakll - 04-03-2009 11:40
Witam. Ostatnio wpadłem na pomysł na napisanie kontroli serwera z poziomu GG. Mam już skrypt do EKG, tylko teraz mam problem.
Mianowicie nie wiem zupełnie jakby uruchomić skrypt w bashu z poziomu pythona. Wie może ktoś coś na ten temat? Pozdrawiam.



0x11 - 04-03-2009 11:48
Wykorzystaj funkcje systemowe.



beel - 04-03-2009 12:27
import subprocess
 
try:
        retcode = subprocess.call("/sciezka/do/skryptu" + "ewentualnie argumenty", shell=True)
 
except OSError, e:
    print >>subprocess.sys.stderr, "Błąd wykonania:", e PS. Jak skończysz chętnie zobaczę efekt.



czakll - 10-03-2009 19:28
Coś mi nie idzie :/ Od razu mówię, że nie znam pythona, powoli się go uczę, ale z przykładów najlepiej idzie mi nauka ;) Wie ktoś co może być nie tak? Pozdrawiam



beel - 10-03-2009 19:48
Posprawdzaj dokładnie wcięcia w kodzie, spacje i inne białe znaki. Coś najprawdopodobniej się nie zgadza. Albo wrzuć więcej kodu, który uruchamiasz..



czakll - 13-03-2009 17:23
def odpal():
        try:
 subprocess.call("sh /root/serw/start.sh", shell=True)
 
        except OSError, e:
    ekg.printf(subprocess.sys.stderr, "Błąd wykonania:", e)
        return 1 Mniej więcej w tym miejscu coś się nie zgadza :-|



beel - 13-03-2009 18:36
Tak jak mówiłem, pilnuj wcięć! W Pythonie jest to bardzo istotne, nie otwierasz i nie zamykasz jawnie za pomocą jakiegoś znaku np. '{' i '}' konkretnej sekcji, czy to klasy, czy funkcji.

Poprawnie jest tak:
def odpal():
    try:
                subprocess.call("sh /root/serw/start.sh", shell=True)
 
    except OSError, e:
            ekg.printf(subprocess.sys.stderr, "Blad wykonania:", e) 'return 1' pominąłem, bo nie wiem do czego chcesz to stosować.. i jaką miałoby pełnić rolę.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis