Hallo, ich möchte in einem Shell Skript ein Zeichen einlesen. ------------------ #!/bin/bash read -n 1 val echo $val ergibt test.sh: 2: read: illegal option -n ------------------ gebe ich auf der Console read -n 1 val ein, dann blockiert er bis ich ein Zeichen eingegeben habe und gibt dieses anschließend aus. Warum funktioniert das nicht im Shell Skript ?? Gruß
Hab jetzt keinen raspi zur Hand, aber ist der Pfad /bin/bash korrekt ?
Steht wirklich #!/bin/bash im Script und nicht vielleicht #!/bin/sh? Letzteres ist in manchen Distributionen (welche ist auf deinem Pi?) auf dash statt bash verlinkt, das würde die Fehlermeldung erklären.
Hi, Raspbian Jessie Version: May 2016 Release date: 2016-05-27 Kernel version: 4.4 Hatte bereits beide Shebangs versucht, leider beide mit gleichem Ergebnis
RPI schrieb: > Raspbian Jessie > Version: May 2016 > Release date: 2016-05-27 > Kernel version: 4.4 > > Hatte bereits beide Shebangs versucht, leider beide mit gleichem > Ergebnis ...die Frage lautet ja auch, welche Shell nun wirklich auf dem Pi zum Einsatz kommt!
Mit folgender Option wartet read eine Sekunde und macht dann weiter wenn keine Eingabe erfolgte. read -n 1 -t 1 val http://linuxcommand.org/lc3_man_pages/readh.html
Wie startest du das script? Das #! wird nur beachtet, wenn man es als Kommando oder per ./test.sh aufruft. Wenn man /sh test.sh/ eingibt wird test.sh immer von sh interpretiert, und bei /bash test.sh/ immer von bash.
>Wie startest du das script? Das #! wird nur beachtet, wenn man es als >Kommando oder per ./test.sh aufruft. Wenn man /sh test.sh/ eingibt wird >test.sh immer von sh interpretiert, und bei /bash test.sh/ immer von >bash. Vielen Dank für den Hinweis, daran hatte ich nicht gedacht. Mit ./test.sh funktioniert alles wie gewünscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.