Вы уже нашли ошибку в программировании, но с точки зрения программирования оболочки общий сценарий довольно неуклюжий.Вот реорганизованная версия.
#!/bin/bash
FILE_SIZE_BITS=8589934592;
FILE_NAME="fill_me";
while true; do
echo "Dummy text to fill the file" >> "$FILE_NAME";
SIZE=$(stat -c%s "$FILE_NAME") # if you have a variable, use it everywhere
if [[ $SIZE -gt $FILE_SIZE_BITS ]]; then
break
fi
done
Имя переменной COUNT
и выполненная вами арифметика довольно вводят в заблуждение, так как вы выходите, как только COUNT становится больше 0. Можно также использовать trueФлаг / false в этом случае, но здесь я даже не сохраняю статус в переменной.Вместо этого я break
выходит из цикла (и, следовательно, всего сценария), когда условие выхода истинно.