Здравия желаю! Сегодня расскажу про прикол с Bash-массивами.
А именно — в качестве индекса можно использовать арифметическое выражение.
Чо? Ну смотри, как здоровые люди работают с массивами:
arr=('huy' 'pizdec')
echo "${arr[@]}"
echo "${arr[0]}"
echo "${arr[1]}"
Всё здесь правильно, прям как в книжках! Прочитал и понял, что выведется на экран.
А вот массив курильщика:
arr=('huy' 'pizdec')
echo "${arr[6%2]}"
Что, думаешь, эта херабора выплюнет? А тут «брат»… И выплюнет оно первое слово huy. Но почему?
Потому что гладиолус. Логично: делим 6 на 2, получаем 3. Но у нас нет третьего элемента в массиве. WTF!!??
А мы тут как бы не делим! Не путай деление с «%».
После деления 6 на 2 у нас получился остаток 0. То есть это как бы нулевой индекс массива, получаем huy.
Соответственно, если сделать 7%2, то выведется слово — pizdec. Потому что после деления получился остаток 1.
Ну а чтобы получить 3-й элемент массива, надо подобрать циферки. Ну, например, 5%3, получим остаток 2. И так далее. Ну ты понял.








Комментарии