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
bc
POSIX 사양순수 조건문은 필요하지 않으며 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
표준 출력으로 인쇄합니다.