![シェルスクリプトで配列を追加して乗算プログラムを実行するには? [閉鎖]](https://linux33.com/image/37437/%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%A7%E9%85%8D%E5%88%97%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%A6%E4%B9%97%E7%AE%97%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
配列加算と配列乗算を実行するプログラムarr_calcを作成します。このプログラムには4つのパラメータがあります。
パラメータ1:入力配列Aのファイル名
パラメータ2:入力配列Bのファイル名パラメータ
3:出力配列Cのファイル名パラメータ
4:計算(aは加算、mは乗算を意味します)
たとえば、arr_calc file1 file2 file3 a
答え1
シェルプログラミングの使用:
以下は、行列を追加するためのシェルスクリプトです。
#!/bin/bash
read -p "Enter the matrix order [mxn] : " t
m=${t:0:1}
n=${t:2:1}
echo "Enter the elements for first matrix"
for i in `seq 0 $(($m-1))`
do
for j in `seq 0 $(($n-1))`
do
read x[$(($n*$i+$j))]
done
done
echo "Enter the elements for second matrix"
for i in `seq 0 $(($m-1))`
do
for j in `seq 0 $(($n-1))`
do
read y[$(($n*$i+$j))]
z[$(($n*$i+$j))]=$((${x[$(($n*$i+$j))]}+${y[$(($n*$i+$j))]}))
done
done
echo "Matrix after addition is"
for i in `seq 0 $(($m-1))`
do
for j in `seq 0 $(($n-1))`
do
echo -ne "${z[$(($n*$i+$j))]}\t"
done
echo -e "\n"
done
exit 0
行列乗算の場合、上記と同じロジックを使用できます。