如何在 bash 中使用动态命名的“i”创建嵌套 for 循环

如何在 bash 中使用动态命名的“i”创建嵌套 for 循环

因此,以下代码可以包装 for 循环并为每个项目打印一些内容:

iterate() {
  local array=$1

  shift

  for i in $array; do
    $*
  done
}

iteratecallback() {
  echo item: $i
}

data=$(ls)
iterate "$data" iteratecallback

但我想做的是,例如,将echo item: $ii 放入echo item: $position顶层,然后index进行下一级嵌套,然后进行第三级嵌套。i基本上可以任意命名这些索引变量将它们传递给包装函数时

例如,这样的事情:

iterate() {
  local customname=$1
  local array=$2

  shift

  for $customname in $array; do
    $*
  done
}

iteratecallback() {
  echo item: $position

  data2=$(ls)
  iterate index "$data2" iteratecallback2
}

iteratecallback2() {
  echo item: $index in $position
}

data=$(ls)
iterate position "$data" iteratecallback

想知道如何在 Bash 中做这样的事情。

相关内容