Ergebnis 1 bis 3 von 3
  1. #1
    Macoun
    Themenstarter

    Registriert
    01.2010
    Alter
    14
    Beiträge
    123

    Pfeil spawn, expect und send in "normalen" Shell-Script

    Hi Leute!

    Google jetzt schon ziemlich lange und finde keine Lösung...
    Habe ein langes Shellscript, das mit dem Standard beginnt:
    Code:
    #!/bin/sh
    An einer Stelle im Script soll automatisch eine Verbindung per Telnet hergestellt werden. Dabei soll auch das Passwort automatisch eingegeben werden. Habe mir das so ergooglt:
    Code:
    spawn telnet fritz.box
    expect "password: "
    send "*************"
    Leider kommen die Meldungen:
    Code:
    ./work: line 49: spawn: command not found
    couldn't read file "password: ": no such file or directory
    ./work: line 51: send: command not found
    Habe dann die erste Zeile durch
    Code:
    #!/usr/bin/expect
    ersetzt, aber dann tun es andere Befehle nicht.
    Und wenn ich beide "#!"s hintereinander schreibe, wird nur das erste "ernst" genommen.

    Ich hoffe ihr versteht mein Problem!

    Schönen Abend noch,
    Andi

  2. #2
    Moderator Betriebssysteme Avatar von ImperatoR
    Registriert
    12.2006
    Ort
    BaWü
    Alter
    24
    Beiträge
    4.795
    Mac OS X hat kein spawn-Programm installiert.

    Ich kenne mich mit telnet nicht aus, die entsprechenden Parameter musst du dir natürlich suchen. Aber ein automatischer Login als Superuser funktioniert z.B. so:
    Code:
    sudo su && echo DeinAdminPasswort
    Also könnte dein Skript so ähnlich lauten:
    Code:
    #!/bin/sh
    
    telnet fritz.box && echo DeinFritzBoxPasswort
    { 4pple.de/, twitter.com/, 500px/, 15" MacBookPro6,2 Antiglare }

  3. #3
    Altländer Pfannkuchenapfel Avatar von gKar
    Registriert
    06.2008
    Ort
    Wetter (Ruhr)
    Beiträge
    4.460
    Zitat Zitat von Otti10 Beitrag anzeigen
    Habe ein langes Shellscript, das mit dem Standard beginnt:
    Code:
    #!/bin/sh
    Das ist nicht „der Standard“, das ist der sog. „Shebang

    ./work: line 49: spawn: command not found
    Kein Wunder. Gib im Terminal mal nur „spawn“ ein, und Du wirst dieselbe Meldung erhalten. Warum? Weil Dein Mac kein Programm namens „spawn“ im Suchpfad hat. Ich kenne es auch nicht und habe keine Ahnung, was Du das wo „ergoogled“ hast.

    Habe dann die erste Zeile durch
    Code:
    #!/usr/bin/expect
    ersetzt, aber dann tun es andere Befehle nicht.
    Jetzt wird's ganz wild. Solche Experimente solltest Du vielleicht besser lassen. Damit sagst Du doch dem System nur, dass es nicht „sh“ als Shell benutzen soll, sondern dass das Programm namens /usr/bin/expect die Rolle der Shell übernehmen und alle Kommandos ausführen soll — und das kann es gar nicht. (Vgl. obigen Link zum Shebang)
    Und wenn ich beide "#!"s hintereinander schreibe, wird nur das erste "ernst" genommen.
    Logo, was sollen auch mehrere Shebangs bedeuten? (Vgl. nochmals obigen Link)

    Einfach irgendwelchen Code zusammenzukopieren und ohne Kenntnisse zu verändern, ist nicht sonderlich zielführend. Wenn man überhaupt gefundene Codestücke verwendet, dann erst, nachdem man sie nachvollzogen und verstanden hat — ich persönlich würde nie im Netz gefundene Befehle blind abtippen, ohne mich vorher zu informieren, was ich damit bewirke. Wenn die enthaltenen Programme (wie hier "expect") auf meinem Rechner überhaupt zur Verfügung stehen, schaue ich als erstes in die Manpage (man expect).
    * Wer nichts weiß, muss alles glauben.
    * Geduld mit der Streitsucht der Einfältigen! Es ist nicht leicht zu begreifen, dass man nicht begreift.
    Marie von Ebner-Eschenbach

    Mac-Tastaturlayout für Windows (z.B. in Bootcamp oder VM)

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •