201808-loopvar-array.sh (834B)
1 #!/usr/bin/env bash 2 3 if [[ ! ${BLE_VERSION-} ]]; then 4 source ../../src/benchmark.sh 5 fi 6 7 # 要素数1の配列に順々に要素を入れてループを回したい。 8 # 一番速い方法はどれか。 9 # 試してみた結果だと直接配列名をループ変数扱いするのが速い。 10 11 function f1 { :; } 12 13 function array-loop1 { 14 local -a arr1=() 15 local a 16 for a in {1..1000}; do 17 arr1=("$a") 18 f1 19 done 20 } 21 22 function array-loop2 { 23 local -a arr1=() 24 local a 25 for a in {1..1000}; do 26 arr1[0]=$a 27 f1 28 done 29 } 30 31 function array-loop3 { 32 local -a arr1=() 33 local a 34 for a in {1..1000}; do 35 arr1=$a 36 f1 37 done 38 } 39 40 function array-loop4 { 41 local -a arr1=() 42 local a 43 for arr1 in {1..1000}; do 44 f1 45 done 46 } 47 48 ble-measure array-loop1 49 ble-measure array-loop2 50 ble-measure array-loop3 51 ble-measure array-loop4