シェル - expr "乗算表"を使用する

シェル - expr

私は球球団を作るためにシェルを学んでおり、次のようなコードを書いています。

#!/ in/bash

for i in 1 2 3 4 5 6 7 8 9

do

    for j in 1 2 3 4 5 6 7 8 9
    do
            if [ $j -le $i ]
            then
                    echo -ne "$i"X"$j"=`expr "$i"*"$j"` "\t"
            else
                    echo
                            break
            fi
            done
    done
echo -ne "\n"

ただし、コンソールに次の応答が表示されます。

1X1=1*1
2X1=2*1         2X2=2*2
3X1=3*1         3X2=3*2         3X3=3*3
4X1=4*1         4X2=4*2         4X3=4*3         4X4=4*4
...

答えは「1x1=1、2x1=2...」であることを願っています。誰でもこのコードを修正する方法を教えてもらえますか?

ベストアンサー1

はい、bashを使用できます。組み込み算術拡張 $(( ))簡単な計算をしてみてください。

乗算の場合:

echo $(( 6 * 7 ))

結果

42

スクリプトは次のとおりです。

#!/ in/bash

for i in 1 2 3 4 5 6 7 8 9

do

    for j in 1 2 3 4 5 6 7 8 9
    do
            if [ $j -le $i ]
            then
                    echo -ne "$i"X"$j"=$(($i * $j)) "\t"
            else
                    echo
                            break
            fi
            done
    done
echo -ne "\n"

おすすめ記事