#!/bin/bash declare -r math='11 ** 12 / 3 % 470' declare -a sortedRes=() declare -i numTests=${1:-0} st=${EPOCHREALTIME/.} ((numTests)) || for ((;${EPOCHREALTIME/.}-st<400000;numTests+=6)) { :;} for tst in {unset,declare\ -i}\ Val:{'Val=$(( '"$math"' ))',"Val='$math'"} ;do # declare -p tst eval ${tst%%:*} start=${EPOCHREALTIME/.} eval "for i in {1..$numTests} ;do ${tst##*:};done" elap=00$((${EPOCHREALTIME/.}-start)) typevar=String [ "${tst%% *}" = "declare" ] && typevar=Integer typeOp=${tst##*=} printf -v sortedRes[10#$elap] '%-24s: %8.3fms -> \47%s\47' \ ${typevar}' var = '"${typeOp//11*470/...}" ${elap::-3}.${elap: -3} "$Val" done printf "%s\n" "${sortedRes[@]}" elap=00000$((${EPOCHREALTIME/.}-st)) printf "( Total execution time: %.5f seconds for 4 x %'d assignments. )\n" \ ${elap::-6}.${elap: -6} $numTests