Так вот
#!/bin/bash
declare -i a=9223372036854775803
for i in {1..10};do
echo $((a++))
done
Ну-ка бармалеи, чо будет?
- прикол
#!/bin/bash
declare -i a=1
for i in {1..64};do
a=a*2
[[ $i -gt 60 ]] && echo $i,$a
done
Фото: Eva Bronzini / PexelsДва коротких Bash-скрипта показывают, что происходит с целочисленной переменной при выходе за пределы 64-битного диапазона. Наглядный эксперимент с инкрементом и умножением на два демонстрирует переполнение знакового integer.
Так вот
#!/bin/bash
declare -i a=9223372036854775803
for i in {1..10};do
echo $((a++))
done
Ну-ка бармалеи, чо будет?
#!/bin/bash
declare -i a=1
for i in {1..64};do
a=a*2
[[ $i -gt 60 ]] && echo $i,$a
done
Комментарии