sistema_progs

Programas para customizar o meu entorno de traballo nos meus equipos persoais
Log | Files | Refs

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