Read-Befehl wartet nicht auf eine Eingabe

chats

Benutzer
Mitglied seit
29. Sep 2012
Beiträge
532
Punkte für Reaktionen
7
Punkte
38
Hallo zusammen,
wo bitte ist mein Fehler?

Inhalt des Scriptes: (auf zwei Zeilen reduziert.)

read eingabe
echo $eingabe


Dann kam glaube ich ein DSM-Update.
Es hat so meiner Meinung immer funktioniert. Jetzt läuft das Script einfach weiter und wartet nicht auf eine Eingabe.
Das war sonst nie so und das Script wurde nicht geändert.
 

ctrlaltdelete

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
30. Dez 2012
Beiträge
14.022
Punkte für Reaktionen
6.044
Punkte
569
Antwort auf ein Wort gekürzt: Was
 

chats

Benutzer
Mitglied seit
29. Sep 2012
Beiträge
532
Punkte für Reaktionen
7
Punkte
38
Was? Hmm. Also nochmal von vorne.

Ein Script mit folgendem Inhalt wartet nicht auf eine Eingabe, wie erwartet, sondern beendet sich sofort ohne das ich was eingeben kann.

read eingabe <---- hier müsste das Script auf eine Eingabe warten, was es auch bisher immer tat.
echo $eingabe
 

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
1.004
Punkte für Reaktionen
127
Punkte
89
Wie wird das Script aufgerufen?
 

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
1.004
Punkte für Reaktionen
127
Punkte
89
Code:
admin@syno:~$ cat e.sh
read eingabe
echo $eingabe
admin@syno:~$ ./e.sh
Das ist eine EIngabe
Das ist eine EIngabe

Funktioniert bei mir wie erwartet.
 

chats

Benutzer
Mitglied seit
29. Sep 2012
Beiträge
532
Punkte für Reaktionen
7
Punkte
38
Also: Ich habe mich über Telnet angemeldet. Geht nicht.
Habe mich über ssh angemdeldet. Geht.
Wo ist denn da der Unterschied?
 

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
1.004
Punkte für Reaktionen
127
Punkte
89
Keine Ahnung. Zeige mal die Ausgabe von folgenden Befehlen:

Code:
admin@syno:~$ cat e.sh
#!/bin/bash
    read eingabe
    echo $eingabe
admin@syno:~$ bash -x e.sh
+ read eingabe
Hallo
+ echo Hallo
Hallo
 

chats

Benutzer
Mitglied seit
29. Sep 2012
Beiträge
532
Punkte für Reaktionen
7
Punkte
38
root@synse:/volume1/script# cat test.sh
#!/bin/bash
read eingabe
echo $eingabe
root@synse:/volume1/script#
root@synse:/volume1/script# bash -x test.sh
+ read eingabe
+ echo
 

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
1.004
Punkte für Reaktionen
127
Punkte
89
Wie sieht die Ausgabe von
Code:
echo $IFS | xxd
aus?
 

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
1.004
Punkte für Reaktionen
127
Punkte
89
Das sieht alles OK aus. Sorry - ich bin mit meinem Latein am Ende 😞
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.057
Punkte für Reaktionen
3.870
Punkte
488
Ich verstehe das Problem nicht
Code:
root@DS1522:~# read eingabe && echo $eingabe
Hallo
Hallo
Die erste Zeile ist das, was ich tippe, die zweite die Ausgabe davon.
 

chats

Benutzer
Mitglied seit
29. Sep 2012
Beiträge
532
Punkte für Reaktionen
7
Punkte
38
Das Problem ist das ich keine Möglichkeit etwas einzugeben. Das Script stoppt nicht damit ich eine Eingabe machen kann. Jedenfalls nicht wenn ich mich mit Telnet anmelde.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.057
Punkte für Reaktionen
3.870
Punkte
488
Verstehe ich auch nicht. Mit ssh funktioniert es, mit telnet nicht, obwohl in beiden Fällen wohl sh die Shell ist

Telnet:
Code:
nasadmin@DS1522:~$ read eingabe && echo $eingabe

nasadmin@DS1522:~$ ps
  PID TTY          TIME CMD
25154 pts/1    00:00:00 sh
25203 pts/1    00:00:00 ps

ssh:
Code:
root@DS1522:~# read eingabe && echo $eingabe
Hallo
Hallo
root@DS1522:~# ps
  PID TTY          TIME CMD
10847 pts/0    00:00:00 crond
23562 pts/0    00:00:00 ash
25890 pts/0    00:00:00 ps
oder ist es da ash?
 

framp

Benutzer
Mitglied seit
19. Feb 2016
Beiträge
1.004
Punkte für Reaktionen
127
Punkte
89
Scheint einen Unterschied bei telnet und ssh bzgl
Code:
echo $SHELL
zu geben. Das wuerde den Effekt erklaeren
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.057
Punkte für Reaktionen
3.870
Punkte
488
Ist bei mir in beiden Fällen /bin/sh zu sein. Bei dir nicht?
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.057
Punkte für Reaktionen
3.870
Punkte
488
Mmh, scheint von der Shell unabhängig zu sein. Selbst wenn ich unter telnet vorher ash oder bash aufrufe geht's nicht, unter ssh immer.
 


 

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