Hi @ all
Der noob ist zurück hehe
Ich hätte eine Frage betreffend Kornshell-skript. Ist es möglich aus so einem skript ein python-modul aufzurufen (welches dann eine bestimmte List erstellt und zurück gibt)
Wenn ja... wie geht das ? muss ich das auch irgendwie "importieren" ?
Besten Dank und einen wunderschönen Tag (bei diesem Wetter müsste man doch in der Badi hocken) hehe
Grüsse aus der Schweiz
(Ich hoffe jetzt seit ihr auch noch so Hilfreich, obwohl ich Schweizer bin) hehe
aus .ksh skript ein python modul aufrufen
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Ein ganz normaler Aufruf von ``python skript`` oder wenn das Skript ausfuehrbar ist: ``skript`` .
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
und wie würde ich dies jetzt hier einbauen...
mein modul heisst z.b "getSubscriberList"
und das ksh skript (der interessante teil) sieht wie folgt aus:
jetzt müsste ich dort wo das "$TO_LIST" steht und er die List aus dem config-file holt, mein pythonmodul aufrufen.
thx a lot
mein modul heisst z.b "getSubscriberList"
und das ksh skript (der interessante teil) sieht wie folgt aus:
Code: Alles auswählen
#
# for all crossed instruments, send a message
#
while read i
do
arena_message $ADS \
-username ATS \
-password maintenance \
-subject "CROSSED EXOTIC" \
-server "$SERVER" \
-to '$TO_LIST' \
-message "$i has been crossed"
echo "$i wurde Crossed"
done < crossed.out
thx a lot
- Michael Schneider
- User
- Beiträge: 569
- Registriert: Samstag 8. April 2006, 12:31
- Wohnort: Brandenburg
Hallo,
dazu hast Du aber ganz schön wenig Infos über das Python-Modul zurückgelassen. Ich gehe mal davon aus, dass es seine Rückgabewerte direkt nach stdout ausgibt?
Dann brauchst Du das Skript doch nur noch ausführen und die Ergebnisse übergeben, ich denke so sollte das gehen:
Gruß
dazu hast Du aber ganz schön wenig Infos über das Python-Modul zurückgelassen. Ich gehe mal davon aus, dass es seine Rückgabewerte direkt nach stdout ausgibt?
Dann brauchst Du das Skript doch nur noch ausführen und die Ergebnisse übergeben, ich denke so sollte das gehen:
Hängt aber wie gesagt davon ab, was Dein Skript zurückgibt.-to `python getSubscriberList`
Gruß
Diese Nachricht zersört sich in 5 Sekunden selbst ...
- Michael Schneider
- User
- Beiträge: 569
- Registriert: Samstag 8. April 2006, 12:31
- Wohnort: Brandenburg
Mal ein praktisches Beispiel:
Inhalt von t.py:
Test:
Inhalt von t.py:
Code: Alles auswählen
print "'test 1'"
print "'test 2'"
<in>echo `python t.py`
<out>'test 1' 'test 2'
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Hei, besten Dank
Es ist so, momentan sind die Email-Empfänger in einem Config-File hart-codiert. das sieht in etwa so aus:
(ADS und Server-Name wurden veschleiert)
im kornshell-skript wird dann mittels:
to '$TO_LIST' die Liste der Prime-User aus dem configfile geholt, und jedem eine Primemessage versandt, dass das Produkt gecrossed wurde.
Versteht jemand diesen Code genau ? meine frage ist, was mast das "while read i do ?" meine frage: sind beim to '$TO_LIST' gleich eine "liste der user enthalten", oder wird über diesen code "geloopet" und bei jedem "to'$TO_LIST'" wird nur immer der nächste empfänger geholt ?
Es handelt sich schon um eine liste oder ?
Meine idee war, das mein pythonmodule dann auch eine "liste" der logonid's zurückgibt, welche eine message erhalten sollen ...
Es ist so, momentan sind die Email-Empfänger in einem Config-File hart-codiert. das sieht in etwa so aus:
Code: Alles auswählen
export ADS=XXX
export SERVER=XXX
export INTERVAL=3600
export TO_LIST="E0914, E1182, E5534, E8102, E2075, T511, TC46, TG99, E1220, E1727, E1815, E2479, E2509, E3279, E3712, E4905, E5550, E6007, E6707, E7097, E7242, E8086, E8112, E8240, E8919, E8922, E8927"
im kornshell-skript wird dann mittels:
to '$TO_LIST' die Liste der Prime-User aus dem configfile geholt, und jedem eine Primemessage versandt, dass das Produkt gecrossed wurde.
Code: Alles auswählen
while read i
do
arena_message $ADS \
-username ATS \
-password maintenance \
-subject "CROSSED EXOTIC" \
-server "$SERVER" \
-to '$TO_LIST' \
-message "$i has been crossed"
echo "$i wurde Crossed"
done < crossed.out
Versteht jemand diesen Code genau ? meine frage ist, was mast das "while read i do ?" meine frage: sind beim to '$TO_LIST' gleich eine "liste der user enthalten", oder wird über diesen code "geloopet" und bei jedem "to'$TO_LIST'" wird nur immer der nächste empfänger geholt ?
Es handelt sich schon um eine liste oder ?
Meine idee war, das mein pythonmodule dann auch eine "liste" der logonid's zurückgibt, welche eine message erhalten sollen ...
@Hubi: Das ist jetzt aber keine Python-Frage mehr, sondern eine über Shell-Skripting.
Die ``while``-Schleife ist über die Zeilen der Datei `crossed.out`. Für jede Zeile wird `$i` an den Inhalt gebunden und das Kommando zwischen ``do`` und ``done`` ausgeführt.
`$TO_LIST` bleibt immer gleich, allerdings setzt Du da auch nicht den Wert der Variablen ein, sondern die literale Zeichenkette '$TO_LIST', was wohl eher nicht das ist, was Du wolltest. In einfachen Anführungszeichen werden Variablennamen nämlich nicht durch ihren Wert ersetzt.
`$TO_LIST` ist keine Liste, sondern eine Zeichenkette. Etwas anderes gibt es im Grunde bei Shell-Skripten nicht. Einige Shells kennen noch Arrays, aber die werden am Ende auch über Zeichenketten simuliert.
Die ``while``-Schleife ist über die Zeilen der Datei `crossed.out`. Für jede Zeile wird `$i` an den Inhalt gebunden und das Kommando zwischen ``do`` und ``done`` ausgeführt.
`$TO_LIST` bleibt immer gleich, allerdings setzt Du da auch nicht den Wert der Variablen ein, sondern die literale Zeichenkette '$TO_LIST', was wohl eher nicht das ist, was Du wolltest. In einfachen Anführungszeichen werden Variablennamen nämlich nicht durch ihren Wert ersetzt.
`$TO_LIST` ist keine Liste, sondern eine Zeichenkette. Etwas anderes gibt es im Grunde bei Shell-Skripten nicht. Einige Shells kennen noch Arrays, aber die werden am Ende auch über Zeichenketten simuliert.
Jep ich weiss, aber da ihr mir hier schon so gut gehollfen habt, dachte ich ich poste es einfach mal "i'm sorry"
also eine zeichenkette sagst du... zwar nicht das was ich wollte, aber mit dem kann ich arbeiten
Besten Dank und einen schönen Tag wünsche ich euch
also eine zeichenkette sagst du... zwar nicht das was ich wollte, aber mit dem kann ich arbeiten
Besten Dank und einen schönen Tag wünsche ich euch