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.
Python - uruchomienie skryptu w bashu
Kod: Zaznacz cały
import subprocess
try:
retcode = subprocess.call("/sciezka/do/skryptu" + "ewentualnie argumenty", shell=True)
except OSError, e:
print >>subprocess.sys.stderr, "Błąd wykonania:", e
Coś mi nie idzie :/ Od razu mówię, że nie znam pythona, powoli się go uczę, ale z przykładów najlepiej idzie mi naukaFile "/root/.gg/scripts/hltv.py", line 15 ƒ
retcode = subprocess.call("sh /root/start.sh", shell=True)
IndentationError: unindent does not match any outer indentation level

Kod: Zaznacz cały
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
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:
'return 1' pominąłem, bo nie wiem do czego chcesz to stosować.. i jaką miałoby pełnić rolę.
Poprawnie jest tak:
Kod: Zaznacz cały
def odpal():
try:
subprocess.call("sh /root/serw/start.sh", shell=True)
except OSError, e:
ekg.printf(subprocess.sys.stderr, "Blad wykonania:", e)