#!/bin/bash drun() { # Überprüfen, ob die richtige Anzahl Argumente übergeben wurden if [ $# -lt 2 ]; then echo "Verwendung: drun " return 1 fi # Container-Namen extrahieren local CONTAINER_NAME="$1" shift # Das erste Argument entfernen # Den Rest der Argumente als Befehlszeichenfolge zusammenfügen local COMMAND="$@" # Container-ID mithilfe des Container-Namens finden local CONTAINER_ID=$(docker ps -qf "name=$CONTAINER_NAME-app") # Überprüfen, ob der Container gefunden wurde if [ -z "$CONTAINER_ID" ]; then echo "Container '$CONTAINER_NAME' wurde nicht gefunden." return 1 fi # Befehl im Container ausführen docker exec -it "$CONTAINER_ID" $COMMAND } _drun_completion() { local cur prev opts COMPREPLY=() # Array, das die Vorschläge enthalten wird cur="${COMP_WORDS[COMP_CWORD]}" # Das aktuelle Wort, das vervollständigt werden soll prev="${COMP_WORDS[COMP_CWORD-1]}" # Das vorherige Wort # Hier definierst du die Optionen oder Argumente, die `drun` akzeptiert opts="start stop restart status" # Wenn die Optionen abhängig vom vorherigen Wort sind, kannst du hier Bedingungen hinzufügen # Beispiel: # if [[ ${prev} == "start" ]]; then # opts="service1 service2 service3" # fi # Die verfügbaren Optionen auf das aktuelle Eingabewort filtern COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) return 0 } complete -F _drun_completion drun