上田ブログ

生きるフリー素材化への厳しい修行(生きるフリー素材だとは言っていない)

お知らせ: 本買ってくださーい / 

  このエントリーをはてなブックマークに追加 
   

GlueLang

GlueLangは、スクリプティングに特化したシェルです。

主な特徴(バージョン0.2.0)

たぶんピンと来ない人が多いと思われますが・・・

中間ファイルを変数のように扱える

#!/usr/local/bin/glue

import PATH            # PATHの下にあるコマンドを有効に

file nums = seq '1' '100'
file buzz = sed '5~5s/.*/Buzz/' nums

sed '3~3s/[0-9]*/Fizz/' buzz

# numsもbuzzも自動で消去される

エラーを起こした場所が分かりやすい

次のようにわざとエラーを起こすコードを実行すると・・・

#!/usr/local/bin/glue

import PATH

file nums = seq '1' '100'
file buzz = se '5~5s/.*/Buzz/' nums   # sedをseに変更

sed '3~3s/[0-9]*/Fizz/' buzz

# numsもbuzzも自動で消去される

次のようにエラーの起きた位置を示してくれます。

$ ./fizzbuzz.glue
Parse error at line 6, char 13
    line6: file buzz = se '5~5s/.*/Buzz/' nums
                       ^

    Command se not exist
    process_level 0
    exit_status 2
    pid 25881
ERROR: 2

パイプの記号が>>=なので目立つ

  • bashのコード: hoge.bash
#!/bin/bash
echo abc | rev | grep -o .
  • glueのコード
#!/usr/local/bin/glue

import PATH
echo 'abc' >>= rev >>= grep '-o' '.'
  • 実行結果
$ ./hoge.bash
c
b
a
$ ./hoge.glue
c
b
a

リンク



Article Info

created: 2018年 5月 5日 土曜日 09:10:32 JST
modified: 2018年 5月 5日 土曜日 11:49:41 JST
views: 233
keywords: