Bash: 정수 표현이 필요합니다.

Bash: 정수 표현이 필요합니다.

최근에 작동이 중단되었습니다. 코드에서 변경해야 할 사항이 있는지 아시나요?

TIME=`grep real < /tmp/EV_Check.time | cut -d ' ' -f2`
time=$TIME
test $time -ge $ct
result=$?
        if [ "$result" -eq "1" ]
        then
        crit=1
        msg="Report execution takes $time!"
        fi
test $time -ge $wt
result=$?
        if [ "$result" -eq "1" ]
        then
        warn=1
        msg="Report execution takes $time!"
        fi

if [ $crit -eq 1 -a $warn -eq 0 ]
then
       echo "Critical value must be greater than warning value !"
       help_usage
       exit 3
fi

다음과 같은 오류가 발생합니다.-

./check_ev_report.sh: line 158: test: 0.45: integer expression expected
./check_ev_report.sh: line 166: test: 0.45: integer expression expected
OK - 0.45

답변1

bash는 정수 연산만 수행할 수 있습니다.

부동 소수점 값을 비교하려면 외부 도구를 호출해야 합니다.bc

if [[ $(bc <<<"$time >= $ct") == "1" ]]; then
    do_something
fi

관련 정보