Aix
AIX 不支持 bc 布爾表達式
我遇到了 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
到標準輸出。