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:
Also könnte dein Skript so ähnlich lauten:Code:sudo su && echo DeinAdminPasswort
Code:#!/bin/sh telnet fritz.box && echo DeinFritzBoxPasswort
Ergebnis 1 bis 3 von 3
- 16.07.2011, 23:47 #1
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:
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:#!/bin/sh
Leider kommen die Meldungen:Code:spawn telnet fritz.box expect "password: " send "*************"
Habe dann die erste Zeile durchCode:./work: line 49: spawn: command not found couldn't read file "password: ": no such file or directory ./work: line 51: send: command not found
ersetzt, aber dann tun es andere Befehle nicht.Code:#!/usr/bin/expect
Und wenn ich beide "#!"s hintereinander schreibe, wird nur das erste "ernst" genommen.
Ich hoffe ihr versteht mein Problem!
Schönen Abend noch,
Andi
- 17.07.2011, 01:03 #2
- 17.07.2011, 01:03 #3
Das ist nicht „der Standard“, das ist der sog. „Shebang“
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../work: line 49: spawn: command not found
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)Habe dann die erste Zeile durch
ersetzt, aber dann tun es andere Befehle nicht.Code:#!/usr/bin/expect
Logo, was sollen auch mehrere Shebangs bedeuten? (Vgl. nochmals obigen Link)Und wenn ich beide "#!"s hintereinander schreibe, wird nur das erste "ernst" genommen.
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)



Zitieren

