Сценарий оболочки для динамически генерируемой команды - PullRequest
0 голосов
/ 07 января 2019

Ниже приведен пример кода:

arg[1]="shell"
arg_value[1]=10
agr[2]="script"
agr_value[2]=50

command skbit ${agr[1]}="${arg_value[1]}" ${agr[2]}="${arg_value[2]}"

skbit - это скрипт, который принимает аргументы в вышеуказанном формате.

Теперь, если есть несколько аргументов, это зависит от времени выполнения. Как создать вышеуказанную команду динамически.

Я пытался,

command skbit $str

, где str= ${agr[1]}="${arg_value[1]}" ${agr[2]}="${arg_value[2]}" и так далее.

эта структура не работает для команды по нескольким причинам.

Я хочу код ниже структуры:

command skbit {A code which will generate arguments dynamically}

1 Ответ

0 голосов
/ 07 января 2019

Возможно, вы ищете что-то вроде этого:

# define some arguments and values
arg[1]=shell
arg_value[1]=10
arg[2]=script
arg_value[2]=50

# joins the arguments and its values
for i in "${!arg[@]}"; do
  args+=( "${arg[i]}=${arg_value[i]}" )
done

# calls the command with the joined arguments
command skbit "${args[@]}"

Вместо этого вы также можете использовать ассоциативный массив:

#!/bin/bash
declare -A arg

arg[shell]=10
arg[script]=50

for i in "${!arg[@]}"; do
  args+=( "$i=${arg[$i]}" )
done

command skbit "${args[@]}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...