Guten Tag zusammen,
ich bin bei einem Script auf diese Zeichen getroffen | (einfach ein senkrechter Schritt), in folgenden Zusammenhang:
echo "1234" | gnokii -entersecuritycode PIN.
Kann mir bitte jemand erklären was das für ein Zeichen ist und welche Funktion es hat.
Besten Dank
Knuffi
Unbekanntes Zeichen
Hallo Knuffi,
das ist kein Python Script, sondern anscheinend ganz normale Befehlszeilenkommandos. Deren Input/Output kann man "umlenken" mit < oder > usw, einfaches Beispiel wäre "dir > inhalt.txt" siehe z.B. hier: http://linuxcommand.org/lts0060.php - Das Zeichen in deinem Beispiel heißt "pipe", und dadurch wird der Output des einen Kommandos zum Input des nächsten, super praktisch!
das ist kein Python Script, sondern anscheinend ganz normale Befehlszeilenkommandos. Deren Input/Output kann man "umlenken" mit < oder > usw, einfaches Beispiel wäre "dir > inhalt.txt" siehe z.B. hier: http://linuxcommand.org/lts0060.php - Das Zeichen in deinem Beispiel heißt "pipe", und dadurch wird der Output des einen Kommandos zum Input des nächsten, super praktisch!
Zuletzt geändert von Kebap am Mittwoch 29. Juli 2015, 15:56, insgesamt 1-mal geändert.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
@Knuffi: Das findet man doch tatsächlich unter dem Lemma „Senkrechter Strich“ bei Wikipedia (und da den Abschnitt „Programmierung“): https://de.wikipedia.org/wiki/Senkrecht ... rammierung
Edit: In Python ist das übrigens ein binärer Operator der Beispielsweise bei ganzen Zahlen eine bitweise „oder“-Verknüpfung bewirkt, oder bei der Pyparsing-Bibliothek für Alternativen verwendet wird.
Edit: In Python ist das übrigens ein binärer Operator der Beispielsweise bei ganzen Zahlen eine bitweise „oder“-Verknüpfung bewirkt, oder bei der Pyparsing-Bibliothek für Alternativen verwendet wird.
Oh jehh,
erstmal herzliche Dank für die Hilfe. Wenn das keine Pythonscript ist (ist wohl eine bash Datei), wie kann ich diese Zeile in ein Pythonscript integrieren.
Der Hintergedanke ist, dass ich mein Haus (I2C Bus ca. 200m Leitung - Heizung, Rolläden, Alarmanlage, Medienserver usw.) mit einem Raspberry steuere. Die Software ist mit Python geschrieben. Jetzt möchte ich, wenn die Bewegungsmelder dem Raspberry Alarm signalisieren, das mir eine SMS dieses auf mein Handy meldet- natürlich nur bei meiner Abwesenheit.
Über den LXterminal kann ich die SMS sauber versenden aber eben noch nicht software mässig.
Gruß
Knuffi
erstmal herzliche Dank für die Hilfe. Wenn das keine Pythonscript ist (ist wohl eine bash Datei), wie kann ich diese Zeile in ein Pythonscript integrieren.
Der Hintergedanke ist, dass ich mein Haus (I2C Bus ca. 200m Leitung - Heizung, Rolläden, Alarmanlage, Medienserver usw.) mit einem Raspberry steuere. Die Software ist mit Python geschrieben. Jetzt möchte ich, wenn die Bewegungsmelder dem Raspberry Alarm signalisieren, das mir eine SMS dieses auf mein Handy meldet- natürlich nur bei meiner Abwesenheit.
Über den LXterminal kann ich die SMS sauber versenden aber eben noch nicht software mässig.
Gruß
Knuffi
@Knuffi: Du startest gnokii mittels `subprocess`-Modul, leitest `stdin` mittels `subprocess.PIPE`-Argument um und verwendest dann am besten die `communicate()`-Methode von dem `Popen`-Exemplar. Die Dokumentation vom `subprocess`-Modul hat einen Abschnitt mit Beispielen.
Ungetestet:
Code: Alles auswählen
#!/usr/bin/env python
# coding: utf8
from __future__ import absolute_import, division, print_function
from subprocess import Popen, PIPE
def main():
gnokii = Popen(['gnokii', '-entersecuritycode', 'PIN'], stdin=PIPE)
gnokii.stdin.write('1234\n')
gnokii.stdin.close()
exit_code = gnokii.wait()
if exit_code != 0:
print('Error: Gnokii exit code:', exit_code)
if __name__ == '__main__':
main()