staging.inyokaproject.org

Bash Schleife, geht teilweise, teilweise nicht

Status: Ungelöst | Ubuntu-Version: Ubuntu 19.10 (Eoan Ermine)
Antworten |

Theo.Spengler

Anmeldungsdatum:
4. Januar 2019

Beiträge: Zähle...

Eigentlich wolte ich zu folgendem Script Hilfe suchen. Aber nun geht es auf einmal. Keine Ahnung was ich nun anders gemacht habe.

Bisher hatten sich meine diesbezüglichen Versuche immer an einem der folgenden Befehle gestört, wenn ich mich an dem "else" Teil versucht habe:

* else

* fi

* done

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/bash

gewuenschte_durchlaufanzahl=12 # Anzahl, die die Schleife durch laufen soll
echo "gewuenschte_durchlaufanzahl"
echo $gewuenschte_durchlaufanzahl
sleep 2
echo
echo

# Schleifenanfang
while [[ $schleifendurchlauf_nr -lt $gewuenschte_durchlaufanzahl ]] 
    do
        find="myword"
        array=(value1 value2 my_word bla_myword myword_blub myword) # Variante mit gesuchtem Wort
#       array=(value1 value2 my_word bla_myword myword_blub _myword) # Variante ohne gesuchtes Wort

        if [[ ! -z $(printf '%s\n' "${array[@]}" | grep -w $find) ]]; then
            echo "Das Array beinhaltet myword"

            schleifendurchlauf_nr=$(( schleifendurchlauf_nr + 1 ))
            echo "aktuelle schleifendurchlauf_nr"
            echo $schleifendurchlauf_nr
            sleep 2
            echo
            echo
            
            # Einfügestelle für anderen in dem Fall ab zu arbeitenden Code

         else
             echo "Das Array beinhaltet kein myword. Der Zähler wir in dem Fall nicht um 1 hoch gezählt"
             # continue # muss ich noch sehen wozu dieser Befehl wäre
            sleep 2
            echo
            echo
         fi

done # Ende der Schleife

read -p "Zum Beenden Enter drücken oder Ctl + C"

Hat jemand Kritiken, sieht syntaktische Fehler ?

Mir geht es hierbei nicht darum das Script möglichst ein zu kürzen. Ich stehe bisher erst einmal eher auf langen und für mich noch verständlichen Code. Kürzeren Code, werde ich sicher im Laufe der Zeit schreiben wenn sich mein Verständnis für das Thema etwas verbessert hat.

Antworten |