Aufgaben Bash function: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Linkai.zhang (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Linkai.zhang (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:
* Erstellen Sie eine Funktion ''my-ips'' in ihrer .bashrc, die alle konfigurierten IPv4 Adressen ohne Netzmaske anzeigt
* Erstellen Sie eine Funktion ''my-ips'' in ihrer .bashrc, die alle konfigurierten IPv4 Adressen ohne Netzmaske anzeigt


* '''vim ~/.bashrc'''
<!-- * '''vim ~/.bashrc''' -->
<syntaxhighlight lang=bash>
<!-- <syntaxhighlight lang=bash> -->
...
<!-- ... -->
function my-ips() {
<!-- function my-ips() { -->
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 -->
}
<!-- } -->
...
<!-- ... -->
</syntaxhighlight>
<!-- </syntaxhighlight> -->
* '''source ~/.bashrc'''
<!-- * '''source ~/.bashrc''' -->


= Aufgabe 2 =
= Aufgabe 2 =
Zeile 17: Zeile 17:
* Stellen Sie diese Funktion anderen Skripten zur Verfügung, indem sie mit '''export -f ''name-der-funktion''''' arbeiten
* 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
* Testen Sie die Funktion in einem separaten Skript
* Überlegen Sie sich wie man solche Funktionen am besten organsiert; Wo würden Sie solche Defin
* Ü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> -->
...
<!-- ... -->
function my-ips() {
<!-- function my-ips() { -->
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 -->
...
<!-- ... -->
</syntaxhighlight>
<!-- </syntaxhighlight> -->
* '''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 -->
* Funktionen entweder alle in ''~/.bashrc'' definieren oder in ''~/.local/lib/bash-funcs'', welche von ''~/.bashrc'' gesourced wird

Version vom 2. Juni 2023, 08:00 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?




  • Funktionen entweder alle in ~/.bashrc definieren oder in ~/.local/lib/bash-funcs, welche von ~/.bashrc gesourced wird