1つの応答、2つの利用可能なスクリプトが停止する:数学関連

1つの応答、2つの利用可能なスクリプトが停止する:数学関連

ユーザー入力に基づいて部屋の2つの面積をユーザーに知らせるスクリプトがあります。私はこの部分が正しいと思います。私が経験している問題は、どの部屋が大きいかをスクリプトで話すようにする必要があるということです。スクリプトの終わりをどのように再構成しようとしても、2つの応答があります。そのうちの1つは、ユーザーが幸運でない限り間違っています。応答がありません。正しい出力を得るには、スクリプトのこの部分をどのように変更しますか?作業部分と私が質問した内容をスキップしたい人のために、それに対する答えとして残りのスクリプトを置きます。また、これは私のUnix入門プロセスの宿題でした。

    if [ $R1z -ge $R2z]
    then
    echo Room 1 is bigger
    else
    echo Room 2 is bigger
    fi

すべてのコード:

    echo Enter the length of room 1
    read R1x
    echo Enter the width of room 1
    read R1y
    echo Enter the length of room 1
    read R2x
    echo Enter the width of room 2
    read R2y
    expr $R1x \* $R1y
    read R1z
    expr $R2x \* $R2y
    read R2z

    if [ $R1z -ge $R2z]
    then
    echo Room 1 is bigger
    else
    echo Room 2 is bigger
    fi

ベストアンサー1

スクリプトを貼り付けるときにタイプミスがありました。

expr $R2x \*$ R2y

読む必要があります

expr $R2x \* $R2y

また、上部に以下を入れる必要があります。

#!/bin/bash

正しいシェルを使用して実行されていることを確認してください。役に立つ操作は行われず、expr結果はR1zまたはR2zに読み込まれません。あなたがしたいことは次のとおりです。

#!/bin/bash
echo Enter the length of room 1
read R1x
echo Enter the width of room 1
read R1y
echo Enter the length of room 1
read R2x
echo Enter the width of room 2
read R2y
R1z=$(expr $R1x \* $R1y)
R2z=$(expr $R2x \* $R2y)

if [ $R1z -ge $R2z ]
then
echo Room 1 is bigger
else
echo Room 2 is bigger
fi

おすすめ記事