Aufgaben Bash function: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 14: | Zeile 14: | ||
* Testen Sie die Funktion in einem separaten Skript | * Testen Sie die Funktion in einem separaten Skript | ||
* Überlegen Sie sich wie man solche Funktionen am besten organsiert; Wo würden Sie solche Funktionen zentral definieren? | * Überlegen Sie sich wie man solche Funktionen am besten organsiert; Wo würden Sie solche Funktionen zentral definieren? | ||
| − | |||
<!-- * '''vim test.sh''' --> | <!-- * '''vim test.sh''' --> | ||
| − | |||
<!-- my-ips --> | <!-- my-ips --> | ||
| − | |||
<!-- * '''bash test.sh''' --> | <!-- * '''bash test.sh''' --> | ||
| − | |||
<!-- bash: my-ip: Kommando nicht gefunden. --> | <!-- bash: my-ip: Kommando nicht gefunden. --> | ||
| − | |||
<!-- * '''vim ~/.bashrc''' --> | <!-- * '''vim ~/.bashrc''' --> | ||
<!-- <syntaxhighlight lang=bash> --> | <!-- <syntaxhighlight lang=bash> --> | ||
| Zeile 29: | Zeile 24: | ||
<!-- ip a | grep "^\s*inet " | tr -s " " | cut -d " " -f 3 | cut -d "/" -f 1 --> | <!-- ip a | grep "^\s*inet " | tr -s " " | cut -d " " -f 3 | cut -d "/" -f 1 --> | ||
<!-- } --> | <!-- } --> | ||
| − | |||
<!-- export -f my-ips --> | <!-- export -f my-ips --> | ||
<!-- ... --> | <!-- ... --> | ||
| Zeile 35: | Zeile 29: | ||
<!-- * '''source ~/.bashrc''' --> | <!-- * '''source ~/.bashrc''' --> | ||
<!-- * '''bash test.sh''' --> | <!-- * '''bash test.sh''' --> | ||
| − | |||
<!-- 127.0.0.1 --> | <!-- 127.0.0.1 --> | ||
<!-- 192.168.178.81 --> | <!-- 192.168.178.81 --> | ||
| Zeile 65: | Zeile 58: | ||
In diesem Beispiel wird die Funktion "square" definiert, die den übergebenen Parameter "num" verwendet, um den Quadratwert zu berechnen. Die Funktion speichert das Ergebnis in der lokalen Variablen "result" und gibt es dann mit einer entsprechenden Ausgabe aus. Am Ende wird die Funktion mit der Zahl 5 aufgerufen, um den Quadratwert von 5 zu berechnen und auszugeben. | In diesem Beispiel wird die Funktion "square" definiert, die den übergebenen Parameter "num" verwendet, um den Quadratwert zu berechnen. Die Funktion speichert das Ergebnis in der lokalen Variablen "result" und gibt es dann mit einer entsprechenden Ausgabe aus. Am Ende wird die Funktion mit der Zahl 5 aufgerufen, um den Quadratwert von 5 zu berechnen und auszugeben. | ||
--> | --> | ||
| + | =Aufgabe 4= | ||
| + | *Schreiben Sie ein Skript unter Verwendung von Funktionen. | ||
| + | *Übergeben Sie dem Skript ein TODO-Parameter(mac,ping,port) und eine IP | ||
| + | *Folgendes soll festgestellt werden: | ||
| + | **Welche Mac Adresse hat die IP | ||
| + | **Ist der Rechner online | ||
| + | **Welche TCP Ports bis 1024 sind offen? | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | <!-- | ||
| + | <syntaxhighlight lang=bash> | ||
| + | #!/bin/bash | ||
| + | TODO=$1 | ||
| + | IP=$2 | ||
| + | function info-arp() | ||
| + | { | ||
| + | ip neigh ls $IP | cut -f 5 -d " " | ||
| + | } | ||
| + | function info-icmp() | ||
| + | { | ||
| + | if ping -q -c 1 -w 1 $IP > /dev/null 2>&1 | ||
| + | then | ||
| + | echo online | ||
| + | else | ||
| + | echo offline | ||
| + | fi | ||
| + | } | ||
| + | function info-ports() | ||
| + | { | ||
| + | for ((port=1;port<1024;port++)) | ||
| + | do | ||
| + | if netcat -w 1 -z $IP $port | ||
| + | then | ||
| + | echo status: open $port | ||
| + | fi | ||
| + | done | ||
| + | } | ||
| + | |||
| + | case $1 in | ||
| + | arp) | ||
| + | echo host: $2 info: $1 | ||
| + | echo mac: $(info-arp) | ||
| + | ;; | ||
| + | |||
| + | icmp) | ||
| + | echo host: $2 info: $1 | ||
| + | echo status: $(info-icmp) | ||
| + | ;; | ||
| + | |||
| + | ports) | ||
| + | echo host: $2 info: $1 | ||
| + | info-ports | ||
| + | ;; | ||
| + | *) | ||
| + | echo usage $1 "arp|icmp|ports" | ||
| + | ;; | ||
| + | esac | ||
| + | </syntaxhighlight> | ||
| + | --> | ||
| + | |||
| + | =Aufgabe 5= | ||
| + | *Schreiben Sie eine Funktion der sie eine IP Adresse übergeben. Es soll die IP Adresse in eine Dezimal Zahl umwandeln. | ||
| + | =Aufgabe 6= | ||
| + | *Schreiben Sie eine Funktion der sie eine IP Adresse übergeben. Es soll die IP Adresse in eine Hexadezimal Zahl umwandeln. | ||
Aktuelle Version vom 8. Juni 2023, 07:55 Uhr
Aufgabe 1
- Erstellen Sie eine Funktion my-ips in ihrer .bashrc, die alle konfigurierten IPv4 Adressen ohne Netzmaske anzeigt
Aufgabe 2
- Stellen Sie diese Funktion anderen Skripten zur Verfügung, indem Sie mit export -f name-der-funktion arbeiten
- Testen Sie die Funktion in einem separaten Skript
- Überlegen Sie sich wie man solche Funktionen am besten organsiert; Wo würden Sie solche Funktionen zentral definieren?
Aufgabe 3
- Schreibe eine Funktion in Bash, die den Quadratwert einer gegebenen Zahl berechnet und ausgibt.
- Die Funktion soll den Namen "square" haben und einen Parameter "num" entgegennehmen.
Aufgabe 4
- Schreiben Sie ein Skript unter Verwendung von Funktionen.
- Übergeben Sie dem Skript ein TODO-Parameter(mac,ping,port) und eine IP
- Folgendes soll festgestellt werden:
- Welche Mac Adresse hat die IP
- Ist der Rechner online
- Welche TCP Ports bis 1024 sind offen?
Aufgabe 5
- Schreiben Sie eine Funktion der sie eine IP Adresse übergeben. Es soll die IP Adresse in eine Dezimal Zahl umwandeln.
Aufgabe 6
- Schreiben Sie eine Funktion der sie eine IP Adresse übergeben. Es soll die IP Adresse in eine Hexadezimal Zahl umwandeln.