die for schleife und die Bash

opino

opino

Tripel-As
hallo,

ich möchte/muss in die Shellprogramierng einsteigen. Ich kann C und ähnliche
Programmiersprachen. In meinem Buch steht das Script-Sprachen leicht zu erlernen
sind, aber bei mir ist es genau das Gegenteil, ich bin die ganze Zeit am rumfluchen,

das was mir absolut nicht in den Kopf rein will ist die for Schleife:

for i in a b c; do echi $i; done

das ist ja alles schön und gut, wenn ich es ausführe klappt es auch aber ich habe
absolut keinen blassen schimmer wie ich zum Beispiel 3 mal eine echo Anweisung
ausführen kann. Was bedeutet dieses i in?
 
for i in a b c; do echi $i; done
Wenn das klappt fress ich einen Besen ;)

Dein code sollte etwa so aussehen
Code:
#!/bin/bash
for i in {a..f};
do echo $i;
done
Damit durchläuft die Schleife den Wert "i"so lange bis deren
Ende (hier "f") erreicht ist.
Der Einzeiler wäre halt
for i in {a..f};do echo $i;done

Gruß Lumpi
 
danke für die schnelle Antwort.

Ich habe mitlerweile rausgefunden das ich für meine zwecke eine while schleife nehme.
Aber nun habe ich ein weiteres Problem. Hier erstmal mein code:

1 a= # a wird gelöschet
2 while [ -z "$a" ]; do
3 echo -n "Wieviele Wert wollen Sie eingeben?"
4 read a
5 a=${a##*[^0-9,'',-]*}
6 if [ -z "$a" ]; then
7 echo "ungültige eingabe"
8 fi
9 done
10
11
12 i=1;
13 while [ $i -le $a ]; do
14 echo $i;
15 i=$[$i+1];
16 done
17
18
19
20 echo $a


ich will quasi mir tabellen basteln die ich mit gnuplot zeichen will.
Das Programm soll mich zuerst fragen wieviele x werte ich ihm geben will und dann
die entprechenden y werte einlesen. ganz zum schluss soll es den x wert tabulatorzeichen und y wert ausgeben.

Mit den Xwerten bin ich nun schon soweit aber wie würde das mit den y-werten gehen?
 
danke für die schnelle Antwort.

Ich habe mitlerweile rausgefunden das ich für meine zwecke eine while schleife nehme.
Aber nun habe ich ein weiteres Problem. Hier erstmal mein code:

...

ich will quasi mir tabellen basteln die ich mit gnuplot zeichen will.
Das Programm soll mich zuerst fragen wieviele x werte ich ihm geben will und dann
die entprechenden y werte einlesen. ganz zum schluss soll es den x wert tabulatorzeichen und y wert ausgeben.

Mit den Xwerten bin ich nun schon soweit aber wie würde das mit den y-werten gehen?

Für Deinen Zweck geht auch

Code:
for ((i=1; i<=3; i++)); do ...; done

und wenn ich Deine Aufgabenstellung richtig verstehe, hilft Dir vielleicht folgendes:

Code:
...
unset s
for ((i=1; i<=a; i++)); do
  read -p "x=" x
  read -p "y=" y
  s="$s$x\t$y\n"
done
printf "$s"

Gruss, Xanti
 

Ähnliche Themen

Verschlüsseltes Backup-Script mit rsync

Telefoninterview (Wie sich auf Bash-Shell-Fragen vorbereiten?)

Schleife zum einlesen vieler Dateien funktioniert nicht

Ordnerdurchlauf for-Schleife & find MIT Leerzeichen

Max_Args trotz for-Schleife überschritten...

Zurück
Oben