小编hon*_*mu3的帖子

修改数组函数参数Bash

我正在尝试修改我作为参数传递给函数的数组.到目前为止,我在函数外面有一个空数组:

buckets=()
Run Code Online (Sandbox Code Playgroud)

然后我有一个函数,它接受2个参数.第一个参数是我要填充的空数组.第二个参数是包含我要用于填充数组的数据的文件的名称.

到目前为止,我所做的是创建一个临时数组.然后用文件的内容填充临时数组.这就是我这样做的方式:

fillarray ()
{
# Declare the paramater as a temporary array
declare -a tempArray=("${!1}")

# Fill it up
while IFS= read -r entry; do
  tempArray+=("$entry")
done < <(jq -r '.data | .[].name' $2)
Run Code Online (Sandbox Code Playgroud)

最后一步是将参数数组(又名桶)设置为我们刚刚填充的临时数组的内容.关于如何做到这一点的任何建议?

arrays parameters bash jq

2
推荐指数
1
解决办法
1201
查看次数

使用数组参数创建 bash 选择菜单

我有一个名为 的函数createmenu。该函数将接受一个数组作为第一个参数。第二个参数是数组的大小。

然后我想使用该数组的元素创建一个选择菜单。这是我到目前为止所拥有的:

使用给定数组创建菜单

createmenu ()
{
  echo $1
  echo "Size of array: $2"
  select option in $1; do
    if [ $REPLY -eq $2 ];
    then
      echo "Exiting..."
      break;
    elif [1 -le $REPLY ] && [$REPLY -le $2-1 ];
    then
      echo "You selected $option which is option $REPLY"
      break;
    else
      echo "Incorrect Input: Select a number 1-$2"
    fi
  done
}
Run Code Online (Sandbox Code Playgroud)

这是对该函数的调用示例:

createmenu ${buckets[*]} ${#buckets[@]}
Run Code Online (Sandbox Code Playgroud)

如何使用参数数组的元素作为选项来创建此选择菜单?

arrays bash argument-passing

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

arrays ×2

bash ×2

argument-passing ×1

jq ×1

parameters ×1