AWKでさくっとHTTPサーバ を立てる(ワンライナーもあるよ)

AWKでHTTP Serverを作るサンプルコード

こちらのサイトが消えていたのでGoogleのキャッシュから拾ってきました。
httpd.awk
#!/usr/bin/gawk -f
# httpd.awk

BEGIN {
    port = "8080";
    http_service = "/inet/tcp/" port "/0/0";
    RS = ORS = "\r\n";

    for (;;) {
        if ((http_service |& getline) > 0) {
            print "HTTP/1.x 200 OK"         |& http_service;
            print "Content-type: text/html" |& http_service;
            print ""                        |& http_service;
            print "<h1>Hello, world!</h1>"  |& http_service;
        }
        close(http_service);
    }
}
使い方
chmod 0755 httpd.awk
./httpd.awk
これで、ブラウザから http://hostname:8080/ にアクセスするとHello Worldが表示されます。
ちょこっとした疎通確認が簡単にできてよいですね。

ちなみに80番ポートをListenしたい場合はrootユーザで実行する必要がありますよ。sudo使いましょう。(←これに気付かず30分ほど悩んだ・・)
ワンライナー
同じことをワンライナーで書くとこうなります。
awk 'BEGIN {port="8080";s="/inet/tcp/" port "/0/0";RS=ORS="\r\n";for(;;){if((s |& getline) > 0){printf "HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\nHello, DQNEO!" |& s;}close(s);}}'
Enjoy AWK!
カテゴリ:

人気記事