따라서 다음 코드는 for 루프를 래핑하고 각 항목에 대해 무언가를 인쇄할 수 있습니다.
iterate() {
local array=$1
shift
for i in $array; do
$*
done
}
iteratecallback() {
echo item: $i
}
data=$(ls)
iterate "$data" iteratecallback
하지만 제가 하고 싶은 것은 예를 들어 i를 최상위 수준 echo item: $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에서 이와 같은 작업을 수행하는 방법이 궁금합니다.