В моей системе максимальное целое число Bash похоже на константу LONG_MAX моей библиотеки Perl POSIX. Очевидно, что это будет зависеть от вашей платформы, от того, как был скомпилирован ваш Bash, и т. Д. Но, похоже, это хорошая отправная точка для его тестирования:
declare -i max=$(perl -MPOSIX -le 'print LONG_MAX')
echo $max
9223372036854775807
echo "max+1 = " $(( i += 1 ))
max+1 = -9223372036854775808
uname -a
Linux x200s 3.2.0-33-generic #52-Ubuntu SMP Thu Oct 18 16:29:15 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
Обновление: Попробовав это на старом 32-битном Linux, я вижу, что POSIX LONG_MAX моего Perl - 2147483647, но у Bash все тот же предел. Кажется, он определен в /usr/include/limits.h и зависит от вашего __WORDSIZE, который может быть 64-битным даже в 32-битных системах:
/* Minimum and maximum values a `signed long int' can hold. */
# if __WORDSIZE == 64
# define LONG_MAX 9223372036854775807L
# else
# define LONG_MAX 2147483647L
# endif