Chapter 06

エイリアスを使おう

zetamatta
zetamatta
2020.10.17に更新

エイリアスも .nyagos の中でnyagos.alias.エイリアス名 という名前の変数に定義を代入することで設定できます。

たとえば「ls -l」を「ll」でも実行できるようにするには

nyagos.alias.ll = 'ls -l $*'

などと .nyagos の中に記載します。$* はエイリアスに渡された引数を全て引用するという意味です。他に第一引数の $1,第二引数の $2 …などもあります。(これらのマクロがない場合は自動で勝手に末尾に $* があるとみなされます)

Luaが書ける人はエイリアスに Lua の関数をリンクさせることもできます。こんな感じに

nyagos.alias["print"] = function(args)
    for _,s in ipairs(args) do
        assert(loadstring("print("..s..")"))()
    end
end

これは電卓コマンドです。パラメータの式を評価して、結果を画面に表示します。

$ print 1+1 2*3 1024/3
2
6
341.3333333333333

パラメータをいきなり Lua の式として評価するので、漸弱性満載です。が、nyagos を使えている時点で既に何もかもできるわけですので、ここでガチガチに防御しても意味がないでしょう。