Read-Befehl wartet nicht auf eine Eingabe

Das komische ist ja auch das es alles lief denn meine Scripte sind alle über Telnet angelegt worden und ich kann es an nichts festmachen woran es liegt.
Ich denke tatsächlich ein Update ist die Ursache.
Wenn ich andere Scripte ohne Eingabeaufforderung laufen lasse ist das Problem nicht da.
Nur bei solchen, wo ich eine Eingabe machen muss.
 
Zuletzt bearbeitet:
telnetd in DSM 7.2.2 is the same version as DSM 6.2.4

Code:
~# telnetd --version
telnetd (GNU inetutils) 1.9.4

and read eingabe && echo $eingabe works for me in both DS 7.2.2 and DSM 6.2.4

DSM 6.2.4
1734491336292.png

DSM 7.2.2
1734491368203.png
 
  • Like
Reaktionen: maxblank und Benie
@DaveR, which telnet-client did you use? When I use telnet from the windows command prompt read doesn't work, with putty and telnet protocol it works.
So it seems to depend on the client or some other settings. Other fun-fact, pressing just Enter the prompt appears twice with the windows client
 
  • Like
Reaktionen: Benie
Vielleicht schickt Windows ein Return und ein Line-Feed und das zweite Zeichen wird dann als leere Eingabe betrachtet. Probiert doch mal im gleichen Skript einen weiteren read-Befehl einzubauen, ob der dann auf Eingaben wartet.

Ansonsten würde ich sowieso von Telnet abraten und ssh empfehlen.
 
  • Like
Reaktionen: Benares
Sowas in der Art muss es sein. Schließt man den Befehl "read eingabe && echo $eingabe" mit ^J (LF) ab, funktioniert es.
"read eingabe && read eingabe && echo $eingabe" geht auch mit Enter bzw. ^M.
 
  • Like
Reaktionen: Hagen2000
@Hagen2000 Logisch das Telnet nicht der Königsweg ist. Ich kann auch ssh benutzen. Aber mich Interessiert eigentlich das warum.
Denn es muss ja einen Grund haben und den würde ich gerne wissen und verstehen.
Aber Du hast Recht. Bei dem zweiten Read Befehl stoppt das Script und wartet fein brav auf die Eingabe.

read eingabe
echo $eingabe

read zweigabe
echo $zweigabe
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Hagen2000
Welchen Terminal-Client nimmst Du denn? Vielleicht kann man die Terminal-Emulation anders einstellen, so dass das Problem vermieden werden kann.
 
Ich nehme den Windowseigenen Telnet-Client.
Ich schaue mal ob ich da was einstellen kann.
 
Denke nicht. Benutzer besser putty, der kann telnet, oder besser ssh.
 
Vielleicht mit Option -t, aber ich benutze auch nur putty mit ssh.
 
Mit -t und anderen Terminals hatte ich es auch schon probiert. Es liegt wirklich nur daran, dass der Windows-Client CRLF bei Enter sendet.
 
Windows halt…
Andererseits kann ich mir nicht vorstellen, dass das so sein soll.
 
Möchte an dieser Stelle nochmal erwähnen das es ja einwandfrei lief. Ich habe auch mal auf einem anderen Linuxgerät einen Test gemacht und der funktionierte.
Daher denke ich das es nichts mit dem Windows-Telnetclient zu tun hat.
Auf der anderen Seite schreibt DaveR in Post 22 das bei DSM 6.x und 7.x geht.
 
Er hat aber nicht den Windows-telnet als Client - sieht man ja an den Screenshots.
 
@DaveR, which telnet-client did you use?

It's Microsoft's telnet.exe from Windows 2000. I kept a copy when I discovered it was much better than the telnet.exe in WinXP and have used it in every Windows version since then.
 

Anhänge

  • Like
Reaktionen: Benie
So it seems to be a separate EXE because your screenshots are showing a menu? The builtin telnet client of WIN10/11seems to be different.
 
Der Client von DaveR funktioniert.
Telnet Client von WIN 10 geht auch nicht.
 
Hat jemand mal getestet ob das Problem auch mit dem Windows WSL ssh Client auftritt?

Ich habe kein Windows und kann es nicht testen.
 

Additional post fields

 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat