フロー制御にUnixシェルを使用する

フロー制御にUnixシェルを使用する

大学で練習する必要がありますが、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

おすすめ記事