Read-Befehl wartet nicht auf eine Eingabe

chats

Benutzer
Mitglied seit
29. Sep 2012
Beiträge
532
Punkte für Reaktionen
7
Punkte
38
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:

DaveR

Benutzer
Sehr erfahren
Mitglied seit
30. Mrz 2022
Beiträge
304
Punkte für Reaktionen
593
Punkte
144
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

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.057
Punkte für Reaktionen
3.870
Punkte
488
@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

Hagen2000

Benutzer
Mitglied seit
25. Mai 2016
Beiträge
368
Punkte für Reaktionen
133
Punkte
43
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

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.057
Punkte für Reaktionen
3.870
Punkte
488
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

chats

Benutzer
Mitglied seit
29. Sep 2012
Beiträge
532
Punkte für Reaktionen
7
Punkte
38
@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

Hagen2000

Benutzer
Mitglied seit
25. Mai 2016
Beiträge
368
Punkte für Reaktionen
133
Punkte
43
Welchen Terminal-Client nimmst Du denn? Vielleicht kann man die Terminal-Emulation anders einstellen, so dass das Problem vermieden werden kann.
 

chats

Benutzer
Mitglied seit
29. Sep 2012
Beiträge
532
Punkte für Reaktionen
7
Punkte
38
Ich nehme den Windowseigenen Telnet-Client.
Ich schaue mal ob ich da was einstellen kann.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.057
Punkte für Reaktionen
3.870
Punkte
488
Denke nicht. Benutzer besser putty, der kann telnet, oder besser ssh.
 

Hagen2000

Benutzer
Mitglied seit
25. Mai 2016
Beiträge
368
Punkte für Reaktionen
133
Punkte
43
Vielleicht mit Option -t, aber ich benutze auch nur putty mit ssh.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.057
Punkte für Reaktionen
3.870
Punkte
488
Mit -t und anderen Terminals hatte ich es auch schon probiert. Es liegt wirklich nur daran, dass der Windows-Client CRLF bei Enter sendet.
 

Hagen2000

Benutzer
Mitglied seit
25. Mai 2016
Beiträge
368
Punkte für Reaktionen
133
Punkte
43
Windows halt…
Andererseits kann ich mir nicht vorstellen, dass das so sein soll.
 

chats

Benutzer
Mitglied seit
29. Sep 2012
Beiträge
532
Punkte für Reaktionen
7
Punkte
38
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.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.057
Punkte für Reaktionen
3.870
Punkte
488
Er hat aber nicht den Windows-telnet als Client - sieht man ja an den Screenshots.
 

DaveR

Benutzer
Sehr erfahren
Mitglied seit
30. Mrz 2022
Beiträge
304
Punkte für Reaktionen
593
Punkte
144
@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

  • telnet_win2000.zip
    45,5 KB · Aufrufe: 5
  • Like
Reaktionen: Benie

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.057
Punkte für Reaktionen
3.870
Punkte
488
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.
 

chats

Benutzer
Mitglied seit
29. Sep 2012
Beiträge
532
Punkte für Reaktionen
7
Punkte
38
Der Client von DaveR funktioniert.
Telnet Client von WIN 10 geht auch nicht.
 

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
1.004
Punkte für Reaktionen
127
Punkte
89
Hat jemand mal getestet ob das Problem auch mit dem Windows WSL ssh Client auftritt?

Ich habe kein Windows und kann es nicht testen.
 


 

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