Read-Befehl wartet nicht auf eine Eingabe

chats

Benutzer
Registriert
29. Sep. 2012
Beiträge
580
Reaktionspunkte
12
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.
 
Antwort auf ein Wort gekürzt: Was
 
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
 
Wie wird das Script aufgerufen?
 
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.
 
Also: Ich habe mich über Telnet angemeldet. Geht nicht.
Habe mich über ssh angemdeldet. Geht.
Wo ist denn da der Unterschied?
 
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
 
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
 
Wie sieht die Ausgabe von
Code:
echo $IFS | xxd
aus?
 
Das sieht alles OK aus. Sorry - ich bin mit meinem Latein am Ende 😞
 
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.
 
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.
 
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?
 
Scheint einen Unterschied bei telnet und ssh bzgl
Code:
echo $SHELL
zu geben. Das wuerde den Effekt erklaeren
 
Ist bei mir in beiden Fällen /bin/sh zu sein. Bei dir nicht?
 
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.
 

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