Linux bash code?
Was ist am done falsch.
Oben Klapp alles blendent doch unten nicht mehr
1 Antwort
Vom Fragesteller als hilfreich ausgezeichnet
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Linux
Du musst Zeilen mit einem ; abschließen.
Heißt:
do
read name;
done
Siehe auch https://wiki.ubuntuusers.de/Shell/Bash-Skripting-Guide_f%C3%BCr_Anf%C3%A4nger/
@julihan41
Ein Code so lange laufen zu lassen bis ich exit eingebe
julihan41
18.05.2023, 17:37
@Deffer
Das wirst du mit Bash nur über einen Hintergrund-Prozess und Interrupt schaffen. Sobald die Schleife läuft, läuft sie und nimmt keine Eingaben mehr an, wenn nicht aktiv danach gefragt wird.
Oder verstehe ich das falsch?
Falls du einfach eine Abfrage einer Eingabe haben willst, bis "exit" das abbricht, dann nimm das hier (in einer Zeile):
word="exit"; read name; while [ "$name" != "$word" ]; do read name; done
@julihan41
name=naving
while [ $name = "exit" ]; do
read name;
for i in $(cat file.txt); do
if [ $i = $name ]; then
echo $i" is in List"
else
echo $i"is not in List"
fi
done
done
Ich finde an deim Code zu bemängeln ist
word="exit";
Warum muss man das als Variable davor schreiben wenn es im "main" code vorkommt
julihan41
18.05.2023, 18:01
@Deffer
name=naving
while [ $name = "exit" ]; do
read name;
for i in $(cat file.txt); do
if [ $i = $name ]; then
echo $i" is in List"
else
echo $i"is not in List"
fi
done
done
Für das Auslesen von Text aus einer Datei gibt es grep! Das musst du nicht selbst schreiben.
grep name file.txt
Gleiches problem
Und weiter oben hat es auch ohne gecklapt