Shell: Alle Argumente bis auf das erste an Programm uebergeben?



  • Hallo,

    ich möchte ein Skript schreiben, das alle Argumente, die ihm übergeben werden, bis auf das erste ($1, sozusagen) an ein anderes Programm weitergeben.

    Also soll das Skript irgendwie so aufgerufen werden können:
    ./mein_skript arg1 arg2 arg3 arg4 ... argn

    In dem Skript soll dann ein Programmaufruf stattfinden, der sowas macht:
    ein_programm arg2 arg3 arg4 ... argn

    Ich will also in dem Skript nur das erste Argument abfangen, der User soll aber beliebig viele Argumente angeben können, die dann an das Programm weitergegeben werden.

    Danke!



  • Falls es um bash geht:

    shift # Erstes Argument, d.h. $1, vergessen
    anderes_programm "$@"
    

    Die Anführungszeichen um $@ sind wichtig, sonst geht es bei Argumenten mit Leerzeichen schief. Das alte erste Argument, also $1, ist danach allerdings verschwunden. Falls du das noch brauchst, musst du es entweder in einer anderen Variablen sichern oder shift in einer subshell/Funktion ausführen.



  • Funktioniert perfekt! Vielen Dank! 🙂


Anmelden zum Antworten