我想知道在bash中以2或更多的步驟迭代數組的最佳方式是什麼?
例如,以下兩種方法可行,但是最簡單的方法是什麼?Bash - 如何在2的步驟迭代數組?
test_loops.sh
#!/usr/bin/env bash
function strategyOne()
{
X=0
for I in "[email protected]"
do
X=$((X%2))
if [ $X -eq 1 ]
then
B="$I"
echo "Pair: $A,$B"
else
A="$I"
fi
X=$((X+1))
done
}
function strategyTwo()
{
ARG_COUNT=$#
COUNTER=0
while [ $COUNTER -lt $ARG_COUNT ]; do
let COUNTER=COUNTER+1
A="${!COUNTER}"
let COUNTER=COUNTER+1
B="${!COUNTER}"
if [ $COUNTER -le $ARG_COUNT ]
then
echo "Pair: $A,$B"
fi
done
}
echo
echo "Strategy 1"
strategyOne $*
echo
echo "Strategy 2"
strategyTwo $*
生成輸出像這樣:
$ ./test.sh a b c d e
Strategy 1
Pair: a,b
Pair: c,d
Strategy 2
Pair: a,b
Pair: c,d