mit Skript im screen einen Befehl ausführen

  • Hallo liebe Community,

    ich habe ein kleines Problem mit meinem Skript. Ich habe Telegram dauerhaft in einem screen namens "tg" laufen und möchte nun über ein Skript zum Beispiel eine Nachricht senden. Allerdings führt das Python Skript diesen Befehl nicht im Screen aus. Wenn ich über das Terminal bspw. folgenden Befehl absende:

    Code
    screen -S tg -X stuff $'msg Name message\n'

    funktioniert das einwandfrei und er schickt an den angegeben Namen die gewünschte message.


    Versuche ich nun folgende Zeile über ein Python Skript zu realisieren:

    geschieht nichts.
    Rechte stimmen!

    Kann mir jemand sagen was ich falsch mache?


    Viele Grüße!

  • Was passiert denn, wenn du

    Code
    subprocess.call(["screen", "-S", "tg", "-X", "stuff", "$'msg Name message\n'"])
    
    
    ausführst?


    [/quote]

    Hi,
    danke vielmals für deine Antwort. Hat zwar nicht funktioniert, da er mit $ und den ' ein Problem hatte, habe allerdings folgendermaßen gelöst:

    Code
    subprocess.call(["screen", "-S", "tg", "-X", "stuff", "msg name message\n"])


    Also für diejenigen, die es ähnlich realisieren wollen:

    "name" ersetzen mit zB. Heinz_Becker, oder wie auch immer euer Zielkontakt sich nennt, das gleiche mit "message, bzw., wenn ihr Variablen übergeben möchtet:

    Code
    subprocess.call(["screen", "-S", "tg", "-X", "stuff", "msg "+name+" "+ message+"\n"])

    Vielen Dank an noisefloor! :)
    *closed*

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!