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
標準出力として印刷します。