#!/usr/bin/env bash # Funktion zum Anzeigen der Nutzung display_usage() { echo "Usage: $0 <service> <regex>" echo " <service>: Name des Systemdienstes" echo " <regex>: Regex für die Konfigurationsdatei" exit 1 } # Prüfen, ob mindestens ein Argument übergeben wurde if [ $# -lt 1 ] || [ $# -gt 2 ]; then display_usage fi SERVICE=$1 # Spezialfall: Wenn nur ein Argument übergeben wurde if [ $# -eq 1 ]; then systemctl cat "$SERVICE" exit 0 fi REGEX=$2 # Holen der Service-Konfiguration description=$(systemctl cat "$SERVICE" 2>/dev/null) if [ $? -ne 0 ]; then echo "Fehler: Service '$SERVICE' konnte nicht gefunden werden." exit 2 fi # Durchsuchen der Ausgabe nach der gesamten Zeile, die mit ExecStart beginnt, und Aufspalten in Strings CONFIG_FILE=$(echo "$description" | grep -oP "(?<=ExecStart=).*" | tr ' ' '\n' | grep -E "$REGEX" | head -n 1) if [ -n "$CONFIG_FILE" ]; then if [ -f "$CONFIG_FILE" ]; then echo "Gefundene Datei: $CONFIG_FILE" read -p "Möchten Sie den Inhalt der Datei anzeigen? (Y/n): " CONFIRM if [[ -z "$CONFIRM" || "$CONFIRM" =~ ^[Yy]$ ]]; then cat "$CONFIG_FILE" else echo "Anzeigen der Datei abgebrochen." exit 0 fi else echo "Fehler: Gefundene Datei '$CONFIG_FILE' existiert nicht oder ist nicht lesbar." exit 3 fi else echo "Fehler: Keine Datei gefunden, die dem Regex '$REGEX' entspricht." echo "Die aktuelle Ausgabe von 'systemctl cat $SERVICE':" echo "$description" exit 4 fi