Как создать массив пар имя-значение из аргументов командной строки?

459
Cherry

Рассмотрим пример:

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

Внутри myScript.sh:

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

Например, массив --name1 valule1 --name2 value2необходимо преобразовать в пары имя / значение:--name1=valule1 --name2=value2

Как это с Bash?

0
Это * твой * скрипт. Есть ли какая-то причина, чтобы не поддерживать синтаксис `--name1 = valule1 --name2 = value2`? Kamil Maciorowski 5 лет назад 0
потому что я не вызывающий scrit, поэтому он может быть вызван только с параметрами пространства. И я должен создать пары для вызова банок. Cherry 5 лет назад 0

1 ответ на вопрос

0
glenn jackman

Создайте массив, содержащий вновь отформатированные параметры для вашего jar:

# keep looping while the 2nd parameter is not null while [[ -n "$2" ]]; do jaropts+=( "$1=$2" ) shift 2 done echo java -jar someJar.jar "$" 
Получил `строку 6: синтаксическая ошибка: неожиданный конец файла` :( Cherry 5 лет назад 0
Также это только для двух параметров, а не для всего массива командной строки Cherry 5 лет назад 0
Эта синтаксическая ошибка не приходит из моего кода. Покажите свой текущий код. glenn jackman 5 лет назад 0
«только по 2 параметрам» - что вы имеете в виду? Покажите, как вы на самом деле вызываете свой скрипт. glenn jackman 5 лет назад 0