Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
#!/bin/bash
C="s[0]=0; p=0;"
while read -n1 c; do case $c in
\+) C="$C s[\$p]=\$((\${s[\$p]}+1));";
C="$C if [ \${s[\$p]} -eq 256 ];then s[\$p]=0;fi;";;
\-) C="$C s[\$p]=\$((\${s[\$p]}-1));";
C="$C if [ \${s[\$p]} -eq -1 ];then s[\$p]=255;fi;";;
\>) C="$C p=\$((\$p+1));";;
\<) C="$C p=\$((\$p-1));";;
\.) C="$C printf \\\\\$(printf '%03o' \${s[\$p]});";;
\,) C="$C read -n1 c; s[\$p]=\`printf '%d' \"'\$c\"\`;";;
\[) C="$C while [[ \${s[\$p]} > 0 ]]; do ";;
\]) C="$C done;";;
esac; done < $1;
eval $C#!/bin/bash
C="s[0]=0; p=0;"
while read -n1 c; do case $c in
\+) C="$C s[\$p]=\$((\${s[\$p]}+1));";
C="$C if [ \${s[\$p]} -eq 256 ];then s[\$p]=0;fi;";;
\-) C="$C s[\$p]=\$((\${s[\$p]}-1));";
C="$C if [ \${s[\$p]} -eq -1 ];then s[\$p]=255;fi;";;
\>) C="$C if [ \$p -eq 2999 ];then p=-1;fi;";
C="$C p=\$((\$p+1));";;
\<) C="$C if [ \$p -eq 0 ];then p=3000;fi;";
C="$C p=\$((\$p-1));";;
\.) C="$C printf \\\\\$(printf '%03o' \${s[\$p]});";;
\,) C="$C read -n1 c; s[\$p]=\`printf '%d' \"'\$c\"\`;";;
\[) C="$C while [[ \${s[\$p]} > 0 ]]; do ";;
\]) C="$C done;";;
esac; done < $1;
eval $C
Интерпретатор Brainfuck на Bash