Shell-Scripting: Möglichkeit, Parameter von der Befehlszeile aus zu analysieren

2419
bguiz
myscript [-a a-arg] [-c c-arg] [-b] [-e] somedirectory 

Angenommen, ich möchte, dass mein Shell-Skript in der Befehlszeile mit den oben genannten Parametern aufgerufen wird - wobei [diese Klammern] angeben, dass sie optional sind - was ist die beste Methode, um sie zu analysieren?

4

1 Antwort auf die Frage

5
John T

Es gibt einige Methoden, um Befehlszeilenargumente zu analysieren. Wenn Sie davon ausgehen, dass Sie bash verwenden, verwenden Sie wahrscheinlich die am wenigsten schmerzhafte Methode getopts.

Zum Beispiel:

#!/bin/bash while getopts "abc:" flag do echo "$flag" $OPTIND $OPTARG done 
[~] $. / ssc.sh -ab -c Datei a 1 b 2 c 4 datei
@John T. Danke für die Antwort: Löse alle bis auf das letzte Bit: Mein "somedirectory" ist keine Option - wie bekomme ich den letzten Parameter (nachdem "getopts" das Looping beendet hat)? bguiz vor 14 Jahren 0
Ich glaube, es wird die letzte Option in $ @ sein. John T vor 14 Jahren 0
Verstanden - `shift $ (($ OPTIND - 1))` war genau das, wonach ich gesucht hatte! bguiz vor 14 Jahren 1
Ausgezeichnet! Glückliches Scripting :) John T vor 14 Jahren 0