$ cat bf.sh
#! / 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 s [\ $ p] = \ $ ((\ $ {s [\ $ p]} - 1));" ;;
\>) 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
$ cat hello.b
++++++++++ [> +++++++> +++++++++> +++> + <<<< -]> ++
.> +. +++++++ .. +++.> ++. << ++++++++++++++.>. +++.
------.--------.> +.>.
$ ./bf.sh hello.b
Hello World!
Source: https://habr.com/ru/post/112989/
All Articles