# trotz Backticks macht telnet Ausgabe nach stdout



## Gottox (12. Januar 2004)

Hallo!
Ich habe mir ein kleines Bash-Script geschrieben, mit dem ich einen Port einer bestimmten IP abfragen will:

```
#!/bin/sh
ip='127.0.0.1'
port='80'

ausgabe=`echo "?" | telnet $ip $port`
echo '-----------------------------';
echo $ausgabe
```
Ausgabe:

```
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?


----------



## Patrick Kamin (12. Januar 2004)

*-*

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.


----------



## JohannesR (12. Januar 2004)

Versuch das ganze mal Netcat, das sollte möglich sein.


----------



## Gottox (12. Januar 2004)

dankschön!
Hat geholfen


----------

