pdb で 2 つのアトム間の距離を見つけるスクリプトがあります。
bash は小数を認識しないため、printf スクリプトを使用して小数を四捨五入しました。
echo $b は正常に機能し、整数値が得られます。
しかし、フィルタリング システムの if 行が機能しません。
エラーが表示されます
[: -ge: unary operator expected
以下は、私が取り組んでいるスクリプトの一部です。
a=$(awk '$2=='91'{x1=$6;y1=$7;z1=$8} $2=='180' {x2=$6;y2=$7;z2=$8} END{print sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) + (z1-z2)*(z1-z2))}' ${names}.pdb.$i)
b= printf %.0f $a
echo $b
if [ $b -ge 1 ] &&[ $b -le 9 ]; then
どんな助けでも大歓迎です。よろしくお願いします。