Shell Script und Datenübergabe

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Spiky, 06.12.2005.

  1. Spiky

    Spiky Grünschnabel

    Dabei seit:
    06.12.2005
    Beiträge:
    7
    Zustimmungen:
    0
    hi alle zusammen,

    wenn es um einfache scripte geht habe ich kein problem doch hier bin ich rätseln...
    ich soll ein shell script schreiben, welches ein programm(a) anstößt. dieses gibt ein ergebnis/datei aus. dann soll ein zweites programm angestoßen werden(selbes script) welches das ergenis/datei von dem programm(a) benötigt um arbeiten zu können.
    wie geht das :think: ?
    könnt ihr mir helfen oder einen link geben wo ich so etwas finden kann?

    MFG
    Spiky
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Du musst uns schon ein paar Infos geben. Welche Programme sind es, was muss übergeben werden.

    Vielleicht reicht bei Dir auch schon ne Pipeline, um Daten von Programm a zu Programm b zu leiten. (siehe "man bash")

    Gruss, Phorus
     
  4. Spiky

    Spiky Grünschnabel

    Dabei seit:
    06.12.2005
    Beiträge:
    7
    Zustimmungen:
    0
    ok, hab das programm selber nicht geschrieben...
    also die daten die weitergegeben weden sollen werden am anfang festgelegt(manuell) und befinden sich in textdokumenten,wo sich auch das script befindet.
    die müssen also weitergegeben werden und von dem anderen programm als input weiterverarbeitet werden.
    :hilfe2:
    guck mir jetzt mal "man bash" pipeline an. dank dir schonmal!

    MFG
    Spiky
     
  5. Spiky

    Spiky Grünschnabel

    Dabei seit:
    06.12.2005
    Beiträge:
    7
    Zustimmungen:
    0
    hatte gerade eine idee,
    ich weiss nur nicht ob es nicht auch eleganter geht.
    kann ich die input-werte des programm(a) nicht einfach in den ordner des anderen progarmms(b) kopieren und beim start von (b) die kopierten daten als input-werte angeben???
    oder gehts besser?

    MFG
    Spiky
     
  6. #5 ninguno, 06.12.2005
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    wie liest denn progb die ergebnis datei von proga, als stdin oder gibt man den dateinamen als parameter beim aufruf von progb mit?
     
  7. Spiky

    Spiky Grünschnabel

    Dabei seit:
    06.12.2005
    Beiträge:
    7
    Zustimmungen:
    0
    naja,
    ich habe ein text dokument welches input-werte für programm (a) enthält, das programm verarbeitet nun die diese werte und würft mehrere text dokumente mit berechneten ergebnissen aus. diese sind nun grundlage für programm (b) und müssen nun als input beim aufruf von programm (b) angegeben werden.
    muss man sich wie ein petrinetz vorstellen.

    mfg
    Spiky
     
  8. #7 ninguno, 06.12.2005
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    ein programm kann man auf verschiedene arten mit daten füttern, die frage ist wie soll das hier gemacht werden? einfach die namen der input dateien als parameter beim programm aufruf mitgeben? wenn ja, wo ist das problem? :think:
     
  9. Spiky

    Spiky Grünschnabel

    Dabei seit:
    06.12.2005
    Beiträge:
    7
    Zustimmungen:
    0
    achso
    ja, es reicht wenn die namen der input dateien als parameter angegeben werden.
    die programme liegen in verschiedenen verzeichnissen.

    programm (a)
    home/.../.../test/java/test/start.sh

    programm (b)
    home/.../.../test/pool/test/pool.sh
     
  10. #9 ninguno, 06.12.2005
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    ja aber was ist jetzt die frage?

    aufruf von programm b:
    Code:
    home/.../.../test/pool/test/pool.sh home/.../.../test/java/test/datei1 home/.../.../test/java/test/datei2
    ?(
     
  11. Spiky

    Spiky Grünschnabel

    Dabei seit:
    06.12.2005
    Beiträge:
    7
    Zustimmungen:
    0
    ich denke ich bin da zu kompliziert an die sache rangegangen ...sorry...
    ich denke es reicht wenn ich die ergebnisse von programm (a) in den ordner von programm (b) kopiere.
    das shell skript läuft dann linear durch, führt das programm (a) aus welches die ergebnisse liefert. dann werden diese ergebnisse per script in den anderen ordner kopiert und nun das programm (b) aufgerufen was diese dateien als input nimmt.
    soweit klappts...wenn ich das kopieren per hand mache läufts...

    is gar nicht so einfach an fremden arbeiten weiterzuschreiben...vor allem wenn man nicht ganz so viel ahnung in diesem bereich hat.:think:

    mal gucken ob ich das kopieren hinbekomme...

    MFG
    Spiky
     
  12. #11 Wolfgang, 06.12.2005
    Zuletzt bearbeitet: 06.12.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Nur mal als kurze Ergänzung zum Verständnis:
    Eine Pipe macht ja nix Anderes, als <STDOUT> des ersten nach <STDIN> des zweiten das wieder zum dritten usw. zu verfüttern.
    Natürlich können das auch eigene FILE-DESKRIPTOREN oder <STDERR> sein.
    Ob und wie du ein Programm in einer Pipe verwenden kannst, richtet sich immer nach den Programmen selbst.

    Ein Programm, welches als Parameter Dateinamen erwartet, kannst du in einer Pipe nur hinter einem Programm verwenden, was auch Dateinamen ausgibt.

    Desweiteren gilt es zu beachten, dass jederzeit <STDERR> dazwischenfunken kann.

    Dazu mal ein nicht funktionierendes Beispiel:
    Wenn ich z.B Datei foo zum tar-Archiv foo.tar hinzufügen will und der Inhalt der datei foo
    bla
    fasel
    bar

    sei:

    cat foo | tar -cf foo.tar

    WIRD NICHT FUNKTIONIEREN!
    Weil cat den Inhalt der Datei foo , statt den Dateinamen ausgibt und tar wird das Erstellen eines leeren Archives ..feige verweigern.. ;)

    Habe ich aber in der Datei foo gültige Dateinamen mit gültigem Pfad stehen, werden alle zum Archiv foo.tar hinzugefügt.

    Gibt es die Datei foo nicht, wird tar die Fehlermeldung von cat als Eingabe erhalten, und jedes einzelne Wort als Dateinamen interpretieren, und natürlich meckern, dass es die Dateien nicht findet.

    Gruß Wolfgang
    Ergänzung:
    Die Frage die du dir Stellen musst, um dein Problem zu lösen lautet:
    Wo bekomme ich die Dateinamen die Programm a erzeugt her?

    Wenn du das gelöst hast, dann ist es ganz einfach programm b damit zu füttern.
    Wenn Programm a die Namen nicht ausgibt, dann hilft dir eventuell find oder ls weiter.
     
  13. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  14. Spiky

    Spiky Grünschnabel

    Dabei seit:
    06.12.2005
    Beiträge:
    7
    Zustimmungen:
    0
    ok leute

    habs jetzt erstmal hinbekommen das alles läuft.
    danke für eure hilfe...:))

    aber ihr werdet sicher nochmal was von mir hören :D :brav:

    MFG
    Spiky
     
  15. #13 Schlaubi_fi.de, 06.12.2005
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    und wie? (hinbekommen)
     
Thema: Shell Script und Datenübergabe
Besucher kamen mit folgenden Suchen
  1. sh script mit Dateiübergabe

Die Seite wird geladen...

Shell Script und Datenübergabe - Ähnliche Themen

  1. Shell Script Problem

    Shell Script Problem: Hallo zusammen, ich arbeite momentan mit einem Plagiat Tool, die ich über Git Bash ausführe. Es wird im Endeffekt ein Link generiert, die ich...
  2. Shellscript für rotierende Datensicherung

    Shellscript für rotierende Datensicherung: Hallo, ich beschäftige mich erst seit ein paar Wochen mit der Shell und habe mich entschlossen meine ersten Scripterfahrungen in diesem kleinen...
  3. Shellscript unerwartetes Dateiende

    Shellscript unerwartetes Dateiende: Hallo zusammen, folgendes Script führe ich in einer .bat via cygwin und curl aus. Beim Ausführen erhalte ich die einen Syntaxfehler:...
  4. shell-script mit plink starten

    shell-script mit plink starten: Hallo, auf meinem kleinen QNAP-Backupserver möchte ich von meinem Windows 7 PC mittels Windows-Batch ein kleines shell script starten. So sieht...
  5. Einfaches Shellscript - dateinamen ändern

    Einfaches Shellscript - dateinamen ändern: Hey, kann mir jemand vielleicht bei diesem miniscript helfen? ich habe dateien die folgendermaßen aussehen MM-DD-YY-dateiname und...