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.