1. #!/bin/bash 
  2. # matrix_multiplication 
  3.  
  4. (( ${#} != 2 )) && exit 1 
  5.  
  6. load::matrix() 
  7.     while read ary; do 
  8.           eval "${1}$((${2}++))=(${ary})" 
  9.     done < ${3} 
  10.  
  11. multiple() 
  12.     b=map${i}[j] 
  13.     d=maq${j}[p] 
  14.     ((q+=${!b}*${!d})) 
  15.  
  16. loop() 
  17.     for((${1}=0; ${1}<${2}; ++${1})); do  
  18.          (( ${#} == 6 )) && q=0 
  19.          eval eval \\\$\{{3..${#}}\} 
  20.          (( ${#} == 9 )) && echo 
  21.          (( ${#} == 6 )) && echo -n "${q} " 
  22.     done 
  23. }  
  24.  
  25. load::matrix map m ${1} 
  26. load::matrix maq n ${2} 
  27. loop i m loop p ${#maq0[@]} loop j n multiple