Seite 1 von 1

Python Programm in Verbindung mit Linux Kommandos

Verfasst: Freitag 3. Juli 2020, 14:01
von noni
Guten Tag,

nun, ich bin momentan dabei ein Programm zu schreiben, welches anhand des Types eines Servers dann entscheidet was er tun soll.
Nun wollte ich also dann diesen kleinen Code ausführen:

def test():
var ="Name des Servers"
if (os.system('hostname') == var):
print ("es ist Server 1")
else:
print ("es hat nicht funktioniert")

Zum Test hatte ich in die variable "var" meinen Hostnamen rein kopiert, also hätte es sinngemäß funktionieren müssen, jedoch kam ich immer in den else Zweig. Nachdem ich auch versuchte die Schritte einzeln nach zu verfolgen, kam ich auch nicht weiter.
Könnte mir da vielleicht einer weiter helfen?

Re: Python Programm in Verbindung mit Linux Kommandos

Verfasst: Freitag 3. Juli 2020, 14:14
von Jankie
Benutze lieber:

Code: Alles auswählen

import platform
platform.node()

import socket
socket.gethostname()
#edit: Die Klammern um die Bedingung beim if sind nutzlos, also weg damit :D

Re: Python Programm in Verbindung mit Linux Kommandos

Verfasst: Freitag 3. Juli 2020, 14:20
von __deets__
Den Aufruf os.system niemals benutzen. Neben diversen Problemen die der hat, ist sein Rueckgabewert auch nicht, was du glaubst, was er ist.

Wenn du die Ausgabe eines Programms haben willst, benutz subprocess.run.

Und natuerlich ist Jankies Ansatz vorzuziehen, wenn die Informationen auch aus Python direkt kommen koennen.

Re: Python Programm in Verbindung mit Linux Kommandos

Verfasst: Freitag 3. Juli 2020, 14:40
von Jankie
..und der Rückgabetyp ist auch nicht das was du erwartet hast. Der ist bei os.system ein int und zwar mit dem Wert 0. Also wäre deine Abfrage auch dahingehend nicht Richtig, weil du einen int mit einem string versuchst zu vergleichen, da kommt immer False.