TGViewer
Bash Days | Linux | DevOps Bash Days | Linux | DevOps @bashdays · 23.6K subscribers
Post #367 9.91K
Про вербальный секс

Здрасти. Вот вам еще одна задачка из моего загашника, которую я скидываю на собесах, размять так сказать мозги кандидату.

Задачка придумана инженерами NASA, специально для будущих разработчиков. Которым в будущем предстоит писать прошивки для их невзъебенных спейс шаттлов и AI гавноходов.


Хм, а ты думал они ни СИська пишут? Нет конечно, там чистый Bash!

Ладно, это пена, задача основана на реальных кейсах.

Сейчас будет что-то из оперы Javascript, но касаемо Bash. Устраиваемся поудобнее, наливаем чаёк/кофеёк. Поехали!

true
echo $?

false
echo $?

echo $((true == false))


Первый блок возвращает 0, второй соответственно 1. А что вернет третий? Очевидно 0? А вот и хуй там плавал! Вернет 1.

Знаешь почему? Потому что ты мыслишь шаблонами, да true = 0, false = 1, но ты упустил саму суть.

Операция == внутри $(()) не является равенством возвращаемых СТАТУСОВ в Bash. Она выполняет проверку равенства двух чисел.

True и False обрабатываются как переменные, но этим переменным не присвоены никакие значения. Поэтому они интерпретируются как 0.

echo $((true))
echo $((false))


В обоих случаях ты получишь 0. Получается так:

echo $((0 == 0))


Оба числа равны, возвращается истина, то есть та самая единица.

✔️ А как сделать правильно?

Ну например так:

true
TRUE=$?
false
FALSE=$?
if (( $TRUE == $FALSE )); then echo TRUE; else echo FALSE; fi


Теперь всё встало на свои места. Мы объявили переменные и задали им значения. А потом уже сравниваем СТАТУСЫ и не РАВЕНСТВО двух чисел.

Такие дела. Вроде безобидная штука, а на логику пиздец как влияет.

Поэтому всегда будь внимателен. И заранее проверяй такие штуки перед деплоем в продакшен. Хотя совет дурацкий, согласен. Проще раздеплоиться и потом уже на проде пофиксить. Бест практики ёпта!


Ладно, не болей, увидимся!

tags: #bash

@ВАSНDАYS | BАSHDАYS.CОM
More from @bashdays
  1. Sep 30, 2026↗️ Для всех, кто строит 15 октября Cloud․ru соберет инженеров, которые строят и эксплуатир…
  2. Sep 29, 2026Самый жаркий холивар в команде — это не systemd, а какие заказать роллы на всю команду. Од…
  3. Sep 24, 2026Post #1565
  4. Sep 23, 2026Здрасти приехали, решил я в кой-то веке воспользоваться услугами Codex, создал аккаунт, по…
  5. Sep 22, 2026Всем привет, с вами TagdTagd. Сегодня опять поднимем тему архивов, но немного с другой сто…
  6. Sep 15, 2026Всем привет, с вами TagdTagd. И это вторая часть. Практическая. С первой частью можешь озн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →