Aix

AIX 不支持 bc 布爾表達式

  • September 17, 2018

我遇到了 bc 在 AIX 系統中沒有布爾表達式的問題。想知道是否有替換命令,所以我不再編寫程式碼了?這是在 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 ]]

bc的 POSIX 規範不需要裸條件,而 AIXbc不支持它們。您將不得不像這樣中斷測試:

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到標準輸出。

引用自:https://unix.stackexchange.com/questions/469613