Basisfragen: Shell-Skripts

Dieses Thema im Forum "Linux OS" wurde erstellt von keyboard, 08.04.2012.

  1. #1 keyboard, 08.04.2012
    keyboard

    keyboard Grünschnabel

    Dabei seit:
    23.03.2012
    Beiträge:
    9
    Zustimmungen:
    0
    Ich mache gerade meine ersten Schritte Richtung Shell-Scripts und habe ein paar Fragen:

    >> Der Befehl
    Code:
    echo "A"
    soll 200 mal wiederholt werden. Nach 100 Mal wiederholen soll
    Code:
    echo "B"
    ausgegeben werden (allerdings während die Schleife noch läuft). Wie wiederhole ich also diese Befehle in einem Shell-Script und wie lasse ich nach 100 mal den anderen Befehl ausgeben?

    Code:
    A
    A
    A
    A
    ...
    A
    B
    A
    B
    ...
    >> Wie addiere ich zur Variable "x" 1 dazu?

    Lg, keyboard
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Gast123, 08.04.2012
    Gast123

    Gast123 Guest

  4. #3 keyboard, 08.04.2012
    keyboard

    keyboard Grünschnabel

    Dabei seit:
    23.03.2012
    Beiträge:
    9
    Zustimmungen:
    0
    Okay, ich habe folgendes versucht:

    Code:
    for a in {1..5}
    do
    echo "Hello!"
    Done
    Ausgabe:
    Code:
    Hello!
    Wo sind die anderen 4? Mit for a in 1 2 3 4 5 geht es, aber ich werde nicht so weiter schreiben, bis ich bei 200 bin?
     
  5. #4 Gast123, 08.04.2012
    Gast123

    Gast123 Guest

    Also, wenn man das "Done" als "done" (also klein) schreibt, dann funktioniert das Skript in der GNU bash, Version 4.2.24 einwandfrei.
    Welche shell verwendest du denn?
    Es gibt zu etlichen shells tutorials im Internet, wie man Loops schreiben kann.
    Google ist dein Freund!
     
  6. #5 keyboard, 08.04.2012
    keyboard

    keyboard Grünschnabel

    Dabei seit:
    23.03.2012
    Beiträge:
    9
    Zustimmungen:
    0
    Entschuldigung, das it Done war ein Rechtschreibfehler. Natürlich ist es kleingeschrieben.

    Ich benutze jetzt das seq Kommando, das funktioniert einwandfrei.
    Und sei dir sicher:
    Hätte Google für mich eine Lösung parat gehabt, hätte ich nicht
     
  7. #6 Spröde, 09.04.2012
    Spröde

    Spröde Alter Sack

    Dabei seit:
    22.01.2012
    Beiträge:
    173
    Zustimmungen:
    0
    Nur in der Bash und tatsächlich mit "echo". Das Beispiel dürfte auch Deine Frage beantworten, wie man zur Vari x, 1 dazu addiert:
    Code:
    #!bin/bash
    x=1
    while [ $x -le 200 ]; do
        echo "A"
        if [ $x -gt 100 ]; then
            echo "B"
        fi
        ((x++))
    done
    
     
  8. #7 Gast123, 09.04.2012
    Gast123

    Gast123 Guest

    Ich denke gemeint ist eher, dass B statt A ausgegeben wird:
    Code:
    #! /bin/bash
    
    for COUNTER in {1..200}; do
    	if [ $COUNTER -le 100 ]; then
    		echo A
    	else
    		echo B
    	fi
    done
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. #8 Spröde, 15.04.2012
    Spröde

    Spröde Alter Sack

    Dabei seit:
    22.01.2012
    Beiträge:
    173
    Zustimmungen:
    0
    Dann hätte er dieses Beispiel nicht posten sollen:
     
  11. #9 Gast123, 16.04.2012
    Gast123

    Gast123 Guest

    Oh, da habe ich mich wohl verlesen.
    Er meine dann wohl doch das, was deine Lösung tut. :-)
     
Thema:

Basisfragen: Shell-Skripts