Tôi muốn so sánh biến số dấu phẩy động với một số nguyên. Tôi biết điều này không phải là tốt nhất để làm với bash, nhưng toàn bộ kịch bản của tôi đã được viết bằng bash. Số $ có thể là số nguyên bất kỳ. Nếu nó dưới hoặc bằng 50, tôi muốn output1, cho tất cả những người khác tôi muốn có đầu ra với biến k khác. Đây là những gì tôi có cho đến thời điểm này:So sánh dấu chấm động với biến trong bash
number=43
test=$(echo "scale=2; $number/50" | bc -l)
echo "$test"
for k in {1..5}
do
if ["$test" -le 1]
then echo "output"
elif ["$test" -gt $k]
then echo "output$k"
fi
done
Nếu tôi thử với test = 0.43, vòng lặp đầu tiên thậm chí không hoạt động. Tôi nghĩ rằng nó đã làm với một số nguyên và một so sánh điểm nổi nhưng không thể làm cho nó hoạt động.
Mọi thứ tôi bị thiếu?
PS: điều này [0.43: command not found
là thiết bị đầu cuối đầu ra.
bạn cũng có thể chỉ cần chuyển sang ksh và sử dụng typeset để tự động tròn. (có sẵn từ năm 1993, hoạt động tốt) –