大学で練習する必要がありますが、3つの値を読み、重複した値があるか、どの値が最も大きく、どの値が最も小さいかを判断することに関するものですが、重複した値を入力するとシェルがメッセージを印刷して計算を停止する必要がありますが、この部分を完了することはできません。
コードは次のとおりです。
#!/bin/sh
echo " A value "
read A
echo " B value "
read B
echo " C value "
read C
# Print the input
echo " INPUT "
echo " A = $A "
echo " B = $B "
echo " C = $C "
# search duplicated values
if [[ $A -eq $B ]] || [[ $A -eq $C ]];then
echo " Duplicated values please check "
elif [[ $B -eq $A ]] || [[ $B -eq $C ]];then
echo " Duplicated values please check "
elif [[ $C -eq $A ]] || [[ $C -eq $B ]];then
echo " Duplicated values please check "
fi
# greatest value
if [[ $A -gt $B ]] || [[ $A -gt $C ]];then
echo " A $A +"
elif [[ $B -gt $A ]] || [[ $B -gt $C ]];then
echo " B $B +"
elif [[ $C -gt $A ]] || [[ $C -gt $B ]];then
echo " C $C +"
fi
# less value
if [[ $A -lt $B ]] || [[ $A -lt $C ]];then
echo " A $A -"
elif [[ $B -lt $A ]] || [[ $B -lt $C ]];then
echo " B $B -"
elif [[ $C -lt $A ]] || [[ $C -lt $B ]];then
echo " C $C -"
fi
A = 3 B = 5 C = 3などの重複コードを入力すると、
コードは計算を実行し、重複値があることを印刷します。重複値を導入したというメッセージを表示したいです。
これをどのように実行できますか?
ご協力ありがとうございます。
答え1
exit
次の適切な場所でこれを行うことができます。
# search duplicated values
if [[ $A -eq $B ]] || [[ $A -eq $C ]];then
echo " Duplicated values please check "
exit
elif [[ $B -eq $A ]] || [[ $B -eq $C ]];then
echo " Duplicated values please check "
exit
elif [[ $C -eq $A ]] || [[ $C -eq $B ]];then
echo " Duplicated values please check "
exit
fi
数字の終了状態で終了することもできます(例:)exit 2
。また、見ることができますhttp://tldp.org/LDP/abs/html/exitcodes.htmlそしてhttp://tldp.org/LDP/abs/html/exit-status.html
答え2
あなたはこれを行うことができます。
#!/bin/sh
echo "A value"
read A
echo "B value"
read B
#Print the input
echo " A = $A "
echo " B = $B "
#serch duplicated values
if [ $A -eq $B ] ;then
echo "Duplicated values please check "
exit
fi
echo "C value"
read C
echo " C = $C "
if [ $C -eq $A ] || [ $C -eq $B ];then
echo " Duplicated values please check "
exit
fi
# greatest value
if [ $A -gt $B ] && [ $A -gt $C ];then
echo " A $A + "
elif [ $B -gt $A ] && [ $B -gt $C ];then
echo " B $B +"
elif [ $C -gt $A ] && [ $C -gt $B ];then
echo " C $C +"
fi
# less value
if [ $A -lt $B ] && [ $A -lt $C ];then
echo " A $A -"
elif [ $B -lt $A ] && [ $B -lt $C ];then
echo " B $B -"
elif [ $C -lt $A ] && [ $C -lt $B ];then
echo " C $C -"
fi
AとBを同じように入力する場合は、Cを入力する必要はありません。そして、それらを比較するには、「||」ではなく「&&」が必要になります。