用于动态生成命令的Shell脚本

时间:2019-01-07 11:30:43

标签: shell unix

下面是示例代码:

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 :(得分:1)

您是否正在寻找类似的东西:

# 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[@]}"