シェルは何も白黒の世界ではありません。ANSIカラーを使えば色を表現することだってできます。多くのコマンドでカラー出力されていたり、無茶するソフトウェアによっては画像を表示するものもあります。 そんな中、Bashでイラストを出力できるスクリプトを生成するのが#bashfillです。スクリプトという点がポイントです。

#bashfillの使い方

イラストを描いているところです。

生成されたスクリプトです。

#!/bin/bash
#Background Colors
E=$(tput sgr0);    R=$(tput setab 1); G=$(tput setab 2); Y=$(tput setab 3);
B=$(tput setab 4); M=$(tput setab 5); C=$(tput setab 6); W=$(tput setab 7);
function e() { echo -e "$E"; }
function x() { echo -n "$E  "; }
function r() { echo -n "$R  "; }
function g() { echo -n "$G  "; }
function y() { echo -n "$Y  "; }
function b() { echo -n "$B  "; }
function m() { echo -n "$M  "; }
function c() { echo -n "$C  "; }
function w() { echo -n "$W  "; }

#putpixels
function u() { 
    h="$*";o=${h:0:1};v=${h:1}; 
    for i in `seq $v` 
    do 
        $o;
    done 
}

img="\
x40 e1 x40 e1 x40 e1 x40 e1 x40 e1 x31 y1 x8 e1 x26 y1 x4 y1 x8 e1 x9 y1 x1 y5 x3 y3 x4 y2 x3 y1 x8 e1 x3 y2 x3 y2 x1 y1 x3 y2 x1 y2 x1 y1 x4 y3 x2 y1 x8 e1 x3 y3 x1 y3 x1 y1 x4 y1 x1 y1 x2 y2 x3 y1 x1 y2 x1 y1 x8 e1 x3 y1 x1 y1 x1 y1 x1 y1 x1 y1 x4 y1 x1 y1 x3 y2 x2 y1 x2 y1 x1 y1 x8 e1 x3 y1 x1 y3 x1 y1 x1 y2 x3 y1 x1 y1 x4 y1 x2 y1 x2 y3 x8 e1 x3 y1 x2 y1 x2 y1 x2 y1 x2 y2 x1 y1 x3 y2 x2 y1 x4 y1 x8 e1 x3 y1 x2 y1 x2 y1 x3 y3 x2 y2 x2 y1 x3 y1 x4 y2 x7 e1 x19 y4 x3 y1 x13 e1 x40 e1 x19 r3 x1 r4 x2 r5 x6 e1 x12 r2 x6 r1 x2 r1 x7 r1 x8 e1 x11 r2 x7 r1 x2 r3 x5 r1 x8 e1 x11 r1 x2 r4 x2 r1 x2 r1 x7 r1 x8 e1 x11 r2 x2 r3 x1 r3 x1 r1 x7 r1 x8 e1 x12 r5 x6 r1 x7 r1 x8 e1 x16 r1 x23"

for n in $img
do
    u $n
done
e;
exit 0;

これをそのまま実行すると、ちゃんと再現されます。ぜひお試しください。

#bashfillの面白いところは再現性のあるペイントができるということでしょう。実際に何が描かれるのかは正直実行してみるまで分かりません。そんな秘密のメッセージめいたところも面白いです。

#bashfillはnode/JavaScript製のオープンソース・ソフトウェア(MIT License)です。

#bashfill > art for your terminal binarymax/bashfill: art for your terminal