GlueLang

Sat May 5 09:10:32 JST 2018 (modified: Sat May 5 11:49:41 JST 2018)
views: 650, keywords:

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

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

リンク