因此,以下代码可以包装 for 循环并为每个项目打印一些内容:
iterate() {
local array=$1
shift
for i in $array; do
$*
done
}
iteratecallback() {
echo item: $i
}
data=$(ls)
iterate "$data" iteratecallback
但我想做的是,例如,将echo item: $i
i 放入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 中做这样的事情。