Aufgaben Bash diverses: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=Aufgabe: Benutzerverwaltung= ;Schreibe ein Bash-Script, das die Benutzerverwaltung auf einem Linux-System unterstützt. Das Skript sollte die folgenden Funkti…“)
 
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 92: Zeile 92:
 
   echo
 
   echo
 
done
 
done
 +
-->
 +
 +
= Starten von Desktopanwendungen =
 +
 +
* Schreiben Sie ein Skript, welches in den Ordnern ''/usr/share/applications'', ''~/.local/share/applications'' und ''~/Desktop'' nach ''.desktop''-Dateien sucht
 +
* Falls die Datei ''Name=...'' und ''Exec=...'' enthält sollen diese in einem assoziativen Array gespeichert werden (Key-Value Paar)
 +
* Danach soll das Skript die Möglichkeit bieten alle Namen in '''less''' anzuzeigen...
 +
* ...oder das in ''Exec=...'' aufgeführte Kommando ausführen, falls Teile des Anwendungsnamens angegeben werden
 +
 +
<!--
 +
<syntaxhighlight lang=bash>
 +
#!/bin/bash
 +
DESKTOP=/usr/share/applications:~/.local/share/applications:~/Desktop
 +
declare -A OPTIONS
 +
 +
# Suche alle .desktop Dateien
 +
for d in $(echo $DESKTOP | sed "s/:/\n/g"); do
 +
    for i in $(ls $d/*.desktop 2> /dev/null); do
 +
APPS+=("$i")
 +
    done
 +
done
 +
 +
# Verbinde Anwendungsnamen mit Kommandozeilenbefehl
 +
for a in "${APPS[@]}"; do
 +
    KEY=$(grep -m 1 "^Name=" $a | cut -d "=" -f 2)
 +
    VAL=$(grep -m 1 "^Exec=" $a | cut -d "=" -f 2 | cut -d "%" -f 1)
 +
    [ "$KEY" ] && OPTIONS["$KEY"]=$VAL && NAMES+="$KEY\n"
 +
done
 +
 +
# Eingabe von l zeigt die gefunden Namen
 +
# Sonst wird der erste grep Match ausgeführt
 +
while true; do
 +
    echo -n "Enter l to list Apps: " ; read CHOICE
 +
    case $CHOICE in
 +
"l")
 +
    echo -e "$NAMES" | less
 +
    ;;
 +
*)
 +
    MATCH=$(echo -e "$NAMES" | grep -m 1 -i $CHOICE)
 +
    eval "${OPTIONS[$MATCH]}"
 +
    exit 0
 +
    ;;
 +
    esac
 +
done
 +
</syntaxhighlight>
 
-->
 
-->

Aktuelle Version vom 5. Juni 2023, 20:42 Uhr

Aufgabe: Benutzerverwaltung

Schreibe ein Bash-Script, das die Benutzerverwaltung auf einem Linux-System unterstützt. Das Skript sollte die folgenden Funktionen bereitstellen
  • Benutzer hinzufügen
  • Benutzer löschen
  • Benutzer deaktivieren
  • Benutzer aktivieren
  • Benutzerliste anzeigen
Das Skript sollte eine while-Schleife verwenden, um Benutzereingaben entgegenzunehmen,
    • eine if-Bedingung, um den entsprechenden Code für die ausgewählte Aktion auszuführen,
    • und eine case-Anweisung, um die verschiedenen Optionen zu behandeln.
  • Es sollte Functionen enthalten.

Starten von Desktopanwendungen

  • Schreiben Sie ein Skript, welches in den Ordnern /usr/share/applications, ~/.local/share/applications und ~/Desktop nach .desktop-Dateien sucht
  • Falls die Datei Name=... und Exec=... enthält sollen diese in einem assoziativen Array gespeichert werden (Key-Value Paar)
  • Danach soll das Skript die Möglichkeit bieten alle Namen in less anzuzeigen...
  • ...oder das in Exec=... aufgeführte Kommando ausführen, falls Teile des Anwendungsnamens angegeben werden