>

대학에서 운동을해야합니다. 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를 입력 할 필요가 없습니다. 그리고 비교하면 "||"가 아니라 "&&"가 필요할 수 있습니다.

  • 이전 networking - http 서비스 인트라넷에 액세스 할 수 없습니다
  • 다음 terminal - vim 및 tmux의 배경색 불일치