Bashfuck

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

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

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

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

Комментарии 9

alxt № 1
Что-то не фурычит. ubuntu linux.
$ bash 1.sh
1.sh: строка 4: basb54: команда не найдена
1.sh: строка 6: basb54: команда не найдена
1.sh: строка 11: aп: команда не найдена
Евгений Степанищев (bolknote.ru) автор № 2
Ну что ж сделаешь, значит не фурычит, я же не могу отладить его у вас в системе :) У меня на «Маке» (bash 4.3.30) и на CentOS 6.6 (bash 4.1.2) — фурычит.
hshhhhh.name № 4

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

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

GNU bash, version 4.2.42

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

Евгений Степанищев (bolknote.ru) автор № 5
а зачем слово «свободно» было выделять красным?

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

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

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