Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

Bashfuck

«…fuck» — это не ругательство, а развлечение, навеянное знаменитым языком программирования «Brainfuck». Практического смысла никакого, правила просты — написать программу на каком-либо языке программирования, не используя буквы и цифры. Уровень повышенной сложности — использовать для программы не все доступные закорюки, а сильно ограниченное количество, например, только пять любых на выбор.

JSFuck у меня в блоге был, PHPFuck — тоже, был даже совмещённый в одной программе JSFuck и Brainfuck, почему бы не попробовать сделать то же на «Баше»?

__=${_##*/} ___=${#__}
__=($__ $(${__:$(($___-${#___}))}${__:${#___}:$___}) $__)
____=${__::$((${#__}-${#___}))}${__[$___]::${#___}}${#__[@]}${#__}
_____=$($____<<<${__[@]}) ______=${_____:${#__[${#__}]}:${#___}}
______=${______,}${__[${#_}]:${#___}:${#___}}${__[$(($___-${#___}))]:${#_}:${#___}}
_______=$($____<<<$_____)
____=${__[${#______}]:${#______}:${#___}} ____=$____$____
__=${__[${#_}]:${#______}}${__[$___]:${#_}:${#___}}$____${_____:$((${#__[@]}+${#__[$___]})):${#___}}
__=$__' '${_______::${#___}}${__:$___}${_____:$((${#_____}>>${#___})):${#___}}
__=$__${____:${#___}}${_______:$(($___+${#______})):${#___}} __=${__,,}
$______<<<${__^}

Сказано — сделано, собственно. Программа на «Баше», что выше, выводит фразу «Hello world», её исходники можно свободно скачать с «ГитХаба».

9 комментариев
alxt 2014

Что-то не фурычит. ubuntu linux.
$ bash 1.sh
1.sh: строка 4: basb54: команда не найдена
1.sh: строка 6: basb54: команда не найдена
1.sh: строка 11: aп: команда не найдена

Евгений Степанищев (bolknote.ru) 2014

Комментарий для alxt:

Ну что ж сделаешь, значит не фурычит, я же не могу отладить его у вас в системе :) У меня на «Маке» (bash 4.3.30) и на CentOS 6.6 (bash 4.1.2) — фурычит.

Евгений Степанищев (bolknote.ru) 2014

Red Hat Enterprise Linux Server release 6.5, bash 4.1.2(1) — работает.

hshhhhh.name 2014

Комментарий для Евгения Степанищева:

а зачем слово «свободно» было выделять красным?

GNU bash, version 4.2.42

работает, в zsh не запустилось :)

Евгений Степанищев (bolknote.ru) 2014

Комментарий для hshhhhh.name:

а зачем слово «свободно» было выделять красным?

На d3.ru так принято сарказм выделять (это распространённый там мэм).

работает, в zsh не запустилось :)

В zsh и не должно, это для «Баша», написано же :)

жидобандера 2014

Комментарий для Евгения Степанищева:

 meme — мэм?!

Евгений Степанищев (bolknote.ru) 2014

Комментарий для жидобандера:

В спешке опечатался. «Мем», конечно.

Иван 2014

кстати, не видели это https://github.com/Ky6uk/PETOOH ?

Евгений Степанищев (bolknote.ru) 2014

Комментарий для Иван:

Видел, только не интересно же. Например у «Ook!» или «COW» ровно та же идея: https://ru.wikipedia.org/w/index.php?title=Brainfuck%26redirect=no#.D0.AF.D0.B7.D1.8B.D0.BA.D0.B8_.D0.BD.D0.B0_.D0.BE.D1.81.D0.BD.D0.BE.D0.B2.D0.B5_Brainfuck