рдЖрдЬ рдореИрдВрдиреЗ рдЗрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рдПрдХ рдЯреЛрд╕реНрдЯрд░ рдкрд░ рдПрдХ рдЦреБрд╢ NetBSD рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдмреНрд░реЗрдирдлрдХ рдкрд░ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рд▓рд╛рдн рдирд╣реАрдВ рдЙрдард╛ рд╕рдХрд╛ред
рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд░рд╛рд╕реНрддрд╛ рдерд╛ - рджреБрднрд╛рд╖рд┐рдпрд╛ рдЦреБрдж рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реЗ рдХреЗрд╡рд▓ рдмреИрд╢ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдереЗред
$ рдмрд┐рд▓реНрд▓реА bf.sh #! / рдмрд┐рди / рдмреИрд╢ C = "s [0] = 0; p = 0;" рдЬрдмрдХрд┐ рдкрдврд╝рд╛ -n1 c; рдорд╛рдорд▓реЗ рдореЗрдВ $ c рдХрд░реЗрдВ \ +) C = "$ C s [\ $ p] = \ $ ((\ $ {s [\ $ p]} + 1));" ;;; \ -) C = "$ C s [\ $ p] = \ $ ((\ $ {s [\ $ p]} - 1));" ;;; \>) рд╕реА = "$ рд╕реА рдкреА = \ $ (($ $ рдкреА + 1));" ;;; \ <) рд╕реА = "$ рд╕реА рдкреА = \ $ (($ $ рдкреА -1));" ;;; \;) C = "$ C рдкреНрд░рд┐рдВрдЯрдл \\\\\ $ (printf '% 03o' \ $ {s [\ $ p]});" ;;; \,) C = "$ C рдкрдврд╝рд╛ -n1 c; s [\ $ p] = \` рдкреНрд░рд┐рдВрдЯрдлрд╝ '% d' \ "\" $ $ \ "\" ;;; [[] C = "$ C рдЬрдмрдХрд┐ [[\ $ {s [\ $ p]}> реж]]; рдХрд░" ;; \]) рд╕реА = "$ рд╕реА рдХрд┐рдпрд╛;"; esac; рдХрд┐рдпрд╛ <$ 1; eval $ рд╕реА $ рдмрд┐рд▓реНрд▓реА рд╣реИрд▓реЛред рдмреА +++++++++++ [> ++++++++++++++++++++++++++++ <<<< -]> ++ ред>ред +ред ++++++++ +++ред ++ ++ред << +++++++++++++++++++ред ++ ++ред ------.-------->> +>ред $ ./bf.sh рд╣реЗрд▓реЛ.рдмреА рдирдорд╕реНрддреЗ рд╡рд┐рд╢реНрд╡!