Linux bash code?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

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/

Deffer 
Fragesteller
 18.05.2023, 17:22

Gleiches problem

Und weiter oben hat es auch ohne gecklapt

0
Deffer 
Fragesteller
 18.05.2023, 17:26
@julihan41

Ein Code so lange laufen zu lassen bis ich exit eingebe

0
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
0
Deffer 
Fragesteller
 18.05.2023, 17:53
@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
0
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
0