Programowanie > Języki skryptowe

[Python] Problem z if-em (error syntax)

(1/1)

kapio:
Mam prosty skrypt w pythonie:

--- Kod: ---
#!/usr/bin/env python
import os
import sys
#os.system("sh /root/xx.sh Wyraz1 Wyraz2")
f = os.popen("sh /root/xx.sh Wyraz1 Wyraz2")
now = f.read()
#print now,
if now == notgood:
        print "Error BASH!"
else:
        print "ok"
--- Koniec kodu ---
Skrypt SH wygląda tak:

--- Kod: ---
#!/usr/bin/bash
if [ $1 = "Damian" ]; then
        echo "notgood"
        exit 0
        else
        echo "good"
fi
--- Koniec kodu ---
I teraz to ma działać na takiej zasadzie:
jeśli skrypt .sh wyrzuci error (notgood) to skrypt python powinien wypisać (error bash), ale tak się nie dzieje. Otrzymuje błąd:

--- Kod: ---
Traceback (most recent call last):
  File "xx.py", line 8, in
    if now == notgood:
NameError: name 'notgood' is not defined
--- Koniec kodu ---
szukałem w google i nie mogłem znaleźć rozwiązania na swój problem. Znalazłem jedynie coś na temat funkcji

--- Kod: ---
raw_input
--- Koniec kodu ---
ale z tego co widzę jest to funkcja, która "czyta" naszą odpowiedź (coś jak read w bashu). A tutaj nic takiego nie mogę użyć bo odpowiedź dostaje ze skryptu SH funkcja os. Dzięki za jakąś odpowiedź.

Paweł Kraszewski:
Brakujący cudzysłów dookoła notgood w Pythonie?

A jeżeli to ma być prosta informacja zerojedynkowa z sh do Pythona, to bardziej stosowałbym kody powrotu niż parsowanie tekstu.

Nawigacja

[0] Indeks wiadomości

Idź do wersji pełnej