trotz Backticks macht telnet Ausgabe nach stdout

Gottox

Erfahrenes Mitglied
Hallo!
Ich habe mir ein kleines Bash-Script geschrieben, mit dem ich einen Port einer bestimmten IP abfragen will:
Code:
#!/bin/sh
ip='127.0.0.1'
port='80'

ausgabe=`echo "?" | telnet $ip $port`
echo '-----------------------------';
echo $ausgabe
Ausgabe:
Code:
Connection closed by foreign host.
-----------------------------
 Escape character is '^]'.

Problem Nr. 1 ist, dass in der Variable bloß eine Zeile (" Escape character is '^]'.") steht und eben nicht die Ausgabe, in diesem Fall, meines Webservers.

Und das zweite Problem ist, das "telnet" trotz der Backticks ne Ausgabe macht ("Connection closed by foreign host.")

Wie kann man diese Probleme abstellen, bzw. gibt es eine Alternative zu telnet, die ohne diese Probleme läuft?
 
Zuletzt bearbeitet:
-

Die Ausgabe "Connection closed by foreign host." wird nicht auf StdOut ausgegeben, sondern auf StdErr. Mit "telnet $host $port 2>/dev/null" kannst du die Fehlermeldung unterdrücken. Der Fehler entsteht durch deine Pipe, da telnet versucht, auf die Daten von StdIn zu verbinden und diese natürlich nicht korrekt sind. Allerdings wird dein Vorhaben so auch nicht funktionieren, da du nur durch eine Pipe Daten an Telnet schicken kannst. Wie das mit der Shell geht, kann ich dir nicht sagen, hätte nur für Tcl was parrat.
 
Zurück