Source-Operator: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 43: | Zeile 43: | ||
== Aufgaben == | == Aufgaben == | ||
* Erstellen Sie ein Skript '''config.sh''' mit zwei Variablen '''SERVER''' und '''PORTS'''. | * Erstellen Sie ein Skript '''config.sh''' mit zwei Variablen '''SERVER''' und '''PORTS'''. | ||
| − | *Belegen sie die Variable SERVER mit den | + | *Belegen sie die Variable SERVER mit den IPs 192.168.X.1 bis 192.168.X.12 |
*Belegen sie die Variable PORTS mit dem Bereich 20:500 | *Belegen sie die Variable PORTS mit dem Bereich 20:500 | ||
* Schreiben Sie ein weiteres Skript, das '''config.sh''' mit '''source''' lädt. | * Schreiben Sie ein weiteres Skript, das '''config.sh''' mit '''source''' lädt. | ||
*Schreiben sie darin die 2 Funktionen. | *Schreiben sie darin die 2 Funktionen. | ||
**host_check: Diese soll testen ob die IP einer Rechner, den man als Argument übergibt, erreichbar ist und bei Erfolg den Rückgabewert "true" zurückliefern. Ansonsten false. | **host_check: Diese soll testen ob die IP einer Rechner, den man als Argument übergibt, erreichbar ist und bei Erfolg den Rückgabewert "true" zurückliefern. Ansonsten false. | ||
| − | **ports_check: Diesem übergegeben sie den jeweiligen Host und die Portliste und | + | **ports_check: Diesem übergegeben sie den jeweiligen Host und die Portliste und diese soll ihnen die offenen ports ausgeben. |
*Der Programteil soll jeden Rechner auf Erreichbarkeit prüfen. | *Der Programteil soll jeden Rechner auf Erreichbarkeit prüfen. | ||
**wenn er erreichbar ist soll ein soll port_check wie oben beschrieben aufgerufen werden. | **wenn er erreichbar ist soll ein soll port_check wie oben beschrieben aufgerufen werden. | ||
Aktuelle Version vom 27. November 2025, 14:07 Uhr
Funktionen – Source-Operator
- Der Source-Operator (auch . genannt) erlaubt es, den Inhalt eines Skripts oder einer Funktion in die aktuelle Shell zu laden, ohne einen neuen Subprozess zu starten.*
- Damit bleiben alle Variablen, Funktionen und Einstellungen im aktuellen Shell-Kontext erhalten.*
Grundprinzip
- Mit source datei oder . datei wird die angegebene Datei zeilenweise von der aktuellen Shell ausgeführt.
- Keine neue Subshell wird gestartet.
- Änderungen an Variablen oder Funktionen bleiben nach dem Laden bestehen.
Beispiel – Source eines Skripts
#!/bin/bash
# Datei: vars.sh
greet() {
echo "Name: $1"
echo "Alter: $2"
}
- Dieses Skript kann von einem anderen Skript geladen werden:*
#!/bin/bash
# Datei: main.sh
source ./vars.sh
# oder kurz: . ./vars.sh
greet Klaus 30
Ausgabe: Name: Klaus Alter: 30
Hinweise
- Mit source werden alle Variablen und Funktionen direkt in die aktuelle Shell übernommen.
- Unterschiede zu normalem Aufruf (./skript):
- ./skript → neue Subshell, Variablen/Funktionen gehen danach verloren
- source → aktueller Shell-Kontext wird erweitert
- Wird häufig genutzt, um Konfigurationen, Funktionen oder Umgebungsvariablen in Skripten verfügbar zu machen.
Aufgaben
- Erstellen Sie ein Skript config.sh mit zwei Variablen SERVER und PORTS.
- Belegen sie die Variable SERVER mit den IPs 192.168.X.1 bis 192.168.X.12
- Belegen sie die Variable PORTS mit dem Bereich 20:500
- Schreiben Sie ein weiteres Skript, das config.sh mit source lädt.
- Schreiben sie darin die 2 Funktionen.
- host_check: Diese soll testen ob die IP einer Rechner, den man als Argument übergibt, erreichbar ist und bei Erfolg den Rückgabewert "true" zurückliefern. Ansonsten false.
- ports_check: Diesem übergegeben sie den jeweiligen Host und die Portliste und diese soll ihnen die offenen ports ausgeben.
- Der Programteil soll jeden Rechner auf Erreichbarkeit prüfen.
- wenn er erreichbar ist soll ein soll port_check wie oben beschrieben aufgerufen werden.