====== LU07.A01: Funktionen ====== Bei dieser Aufgabe erstellen Sie einige Funktionen in Bash-Scripts. Achten Sie auf den korrekten Namen der Funktion, damit der Aufruf klappt. ===== Vorgehen ===== - Erstellen Sie einen neuen Ordner "~/exlu07a01". - Erstellen Sie für jede Teilaufgabe eine neue Scriptdatei (z.B. functionsA.sh, functionsB.sh, ...). - Kopieren Sie die Vorlage der jeweiligen Teilaufgabe in diese Scriptdatei. - Geben Sie dem aktuellen Benutzer das Recht, die Scripts auszuführen \\ z.B. ''chmod u+x exercise11a.sh'' - Realisieren Sie die beschriebene Funktionalität als Funktion im Bash-Script. - Testen Sie Ihr Skript. ===== Aufgabenstellungen ===== ==== 1. Usage ==== Das Skript prüft, ob mindestens 3 Argumente eingegeben wurden. Falls nicht, zeigt die Funktion ''usage'' eine Meldung an. #!/bin/bash # ------ TODO: Funktion 'usage' ------ # Ausgabe: Hier sind 3 Argumente erforderlich # Ausgabe: usage: Skriptname anrede vorname nachname # ------ TODO: Funktion 'usage' ------ # TODO Falls weniger als 3 Argumente angegeben then usage fi ==== 2. Zufallszahl ==== Die Funktion ''generateRandom'' erzeugte eine Zufallszahl in einem von/bis-Bereich. Dieser von/bis-Bereich wird als Parameter beim Aufruf der Funktion übergeben. Ist der Aufruf unvollständig (0 oder 1 Argument), so wird keine Zufallszahl erzeugt (leerer String in Variable). #!/bin/bash # author: FIXME # date: FIXME # ------ TODO: Funktion 'generateRandom' ------ # Falls weniger als 2 Argumente angegeben # Variable 'randomNumber' ist ein leerer String # Returnwert: -1 # # Zufallszahl generieren mit der Formel: RANDOM % ( $2 - $1 +1 ) + $1 # und in 'randomNumber' speichern # Returnwert: 0 # ------ TODO: Funktion 'generateRandom' ------ # Generate a random number between 10 and 20 generateRandom 10 20 echo "The random number is ${randomNumber}" # invalid call generateRandom 1 echo "The random number is ${randomNumber}" ===== Abgabe ===== Laden Sie die Skriptdateien hoch. ---- {{tag>M122-LU07}} [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Daniel Garavaldi, Marcel Suter