AIX는 bc 부울 표현식을 지원하지 않습니다.

AIX는 bc 부울 표현식을 지원하지 않습니다.

AIX 시스템에서 bc에 부울 표현식이 없다는 문제가 발생했습니다. 더 이상 코드를 작성할 필요가 없도록 대체 명령이 있는지 궁금하십니까? 이것은 bash 스크립트에 있습니다.

이것이 내가 가진 것입니다:

percent=-0.17
max=0.20
if [[ $(bc <<< "$percent <= $max && $percent >= -$max") -ge 1 ]]; then
    echo "Under the $max acceptable buffer: File ACCEPTED" 
else
    echo "Over the $max acceptable buffer: File REJECTED"
    exit 1
fi

이것은 내 결과입니다.

++ bc
syntax error on line 1 stdin
+ [[ '' -ge 1 ]]

답변1

bcPOSIX 사양순수 조건문은 필요하지 않으며 AIX에서는 bc이를 지원하지 않습니다. 테스트를 다음과 같이 분류해야 합니다.

percent=-0.17
max=0.20
if [[ $(bc <<< "if ($percent <= $max) if ($percent >= -$max) 1") -eq 1 ]]; then
    echo "Under the $max acceptable buffer: File ACCEPTED" 
else
    echo "Over the $max acceptable buffer: File REJECTED"
    exit 1
fi

bc다음과 같이 스크립트를 다시 포맷하십시오 .

if ($percent <= $max) 
  if ($percent >= -$max) 
    1

...$percent 값이 범위 내에 있는 경우에만둘 다1범위는 표현식을 실행하고 1표준 출력으로 인쇄합니다.

관련 정보