Wie erstellt man ein Array aus Name-Wert-Paaren aus Befehlszeilenargumenten?

552
Cherry

Betrachten Sie ein Beispiel:

bash myScript.sh --name1 valule1 --name2 value2 

Innen myScript.sh:

java -jar someJar. jar --name1=valule1 --name2=value2 

ZB muss ein Array --name1 valule1 --name2 value2in Name / Wert-Paare umgewandelt werden:--name1=valule1 --name2=value2

Wie geht das mit Bash?

0
Dies ist * dein * Skript. Gibt es einen Grund, warum die Syntax `--name1 = valule1 --name2 = value2` nicht unterstützt wird? Kamil Maciorowski vor 5 Jahren 0
da ich kein scrit-aufrufer bin, kann er nur mit platzparametern aufgerufen werden. Und ich muss Paare für den Aufruf des Glases erstellen. Cherry vor 5 Jahren 0

1 Antwort auf die Frage

0
glenn jackman

Erstellen Sie ein Array mit den neu formatierten Optionen für Ihr Glas:

# keep looping while the 2nd parameter is not null while [[ -n "$2" ]]; do jaropts+=( "$1=$2" ) shift 2 done echo java -jar someJar.jar "$" 
Bekam `Zeile 6: Syntaxfehler: unerwartetes Ende der Datei` :( Cherry vor 5 Jahren 0
Es gilt auch nur für 2 Parameter, nicht für das gesamte Befehlszeilenfeld Cherry vor 5 Jahren 0
Dieser Syntaxfehler kommt nicht von meinem Code. Zeigen Sie Ihren aktuellen Code. glenn jackman vor 5 Jahren 0
"Nur für 2 Parameter" - was meinst du damit? Zeigen Sie, wie Sie Ihr Skript tatsächlich aufrufen. glenn jackman vor 5 Jahren 0