2013-11-21 2 views
0

이 IF 문을 단순화하는 더 좋은 방법이 있습니까? 여기에 bc를 사용할 필요가 없다는 말을 들었습니다. 왜냐하면 큰 스크립트에 대한 계산 및 유지 관리의 복잡성이 추가되기 때문입니다. 여기에 BC의 사용을 피할 수있는 방법이 있습니까 :이 IF 문을 단순화하는 더 좋은 방법이 있습니까

if [ `bc -l <<< "$AUTO_INCREMENT_RATIO>=0.9"` -eq 1 ] 
    then 
    <DO SOMETHING HERE> 
    fi 

고마워요!

나는

if [ $AUTO_INCREMENT_RATIO>=0.9 -eq 1 ]; then <DO SOMETHING HERE>; fi 

같은 것을 시도하고 있었다 그러나 나는

+1

정수를 다루는 경우에는 'bc'를 사용할 필요가 없습니다. 그러나 'bash'는 부동 소수점 값을 이해하지 못하므로 조언이 적용되지 않습니다. – chepner

답변

1

점 부동 첫 번째 장소에서 사용하지 않는 것입니다 다루는 가장 좋은 방법은 오류 '예상 정수 표현을'얻을!

변수의 이름을 읽는 것은 비율입니다. 경우에 따라이 비율은 양의 정수, 즉 a/b의 비율 일 경우 a/b0.9과 비교하는 대신 10*a9*b과 비교하십시오.

이것은 귀하의 경우에 직접적으로 적용될 수는 없지만 기억해야 할 좋은 것입니다. 수레가 포함 된 것 같은 많은 문제는 실제로 합리적인 수를 포함하므로 정수 만 사용하여 해결할 수 있습니다 (일반적으로 더 효율적입니다).

관련 문제