Возможно, потому что 'x' не установлено, поэтому сравнение проводится между пустой строкой, преобразованной в целое число и ноль.Это не радует пустую строку.
Чтобы исправить
x=0
...loop as now...
[ $x -eq 0 ] ...
Это имеет полезный побочный эффект - уменьшение количества способов, которыми ваш код может сломаться, если кто-то экспортирует переменную среды.'х'.