if 문 중에 쉘 스크립트가 충돌합니까? [폐쇄]

if 문 중에 쉘 스크립트가 충돌합니까? [폐쇄]
for hi in `seq 0 100`
do
    new_val=1
    if `expr $hi % 5` -eq 5
    then
        echo hello
    elif `expr $hi % 5` -eq 6
    then
        echo bye
    elif `expr $hi % 5` -eq 7
    then
        echo whats up
    fi
    echo $new_val
done

왜 충돌합니까? 목표는 순환 번호 모듈로 5가 5, 6 또는 7과 같은지 확인하는 것입니다.

답변1

수정된 스크립트는 다음과 유사해야 합니다.

#!/bin/sh 

for hi in $(seq 0 100)
do
    if [ "$(expr $hi % 5)" -eq 5 ]
    then
        echo hello
    elif [ "$(expr $hi % 5)" -eq 6 ]
    then
        echo bye
    elif [ "$(expr $hi % 5)" -eq 7 ]
    then
        echo whats up
    fi
    echo "$hi"
done

그러나 모듈로 5 연산의 나머지는 결코 5, 6 또는 7이 아니기 때문에 루프는 if를 입력하지 않습니다.

관련 정보