Huhu,
vielleicht kann mir ja hier jemand helfen. Ich verzweifel etwas an der Lösung. Jedenfalls an einer eleganten. Es soll ein Skript geschrieben werden was beispielsweiße beim Aufruf von "balken 1 2 4" so etwas ausgibt:
* ** **** –––→
Beschränkung gibt es folgende: Wertebereich 0 - 20 und Wertanzahl 1 - 5, für alles andere sollen Fehlermeldungen ausgegeben werden.
Bis jetzt habe ich dies hier:
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | #!/bin/bash if [ $# -lt 1 ]; then echo "ungültige Anzahl" exit 1 elif [ $# -gt 5 ]; then echo "ungültige Anzahl" elif [ $1 -lt 1 ]; then echo "ungültige Wertanzahl" exit 1 elif [ $1 -gt 20 ]; then echo "ungültige Wertanzahl" exit 1 else ( k=0 until [ $k -eq $1 ]; do k=$(echo $k + 1 | bc) echo -n "*" done ) echo -e (k=0 until [ $k -eq $2 ]; do k=$(echo $k + 1 | bc) echo -n "*" done ) echo -e (k=0 until [ $k -eq $3 ]; do k=$(echo $k + 1 | bc) echo -n "*" done ) echo -e (k=0 until [ $k -eq $4 ]; do k=$(echo $k + 1 | bc) echo -n "*" done ) echo -e (k=0 until [ $k -eq $5 ]; do k=$(echo $k + 1 | bc) echo -n "*" done ) fi echo -e echo "---------------------------->" exit 1 |
Mein Problem ist, sobald ich keine 5 Parameter übergebe lande ich in einer Endlosschleife. Sieht mitterlweile aber noch immer besser aus als die Case in" Variante zuvor. Mir gehen aber langsam auch die Ideen aus. Mag mir jemand etwas Input geben?
Danke ☺