多分理解されないと思うけど、あの「入力が数字から始まっていたら、即実行中ではなく記憶しておき、runとタイプされると数字順に実行する」という「古代 8bit BASIC」のシステム、 意外とコマンドラインシェルで便利かもね。nyagos の Lua で書いてみたけど、BASIC気分が味わえた。
こんなの:
if not share.basic then share.basic = {} end nyagos.filter = function(line) local m = string.match(line,"^%d+ ") if m then share.basic[tonumber(m)] = string.sub(line,string.len(m)+1) return "" end m = string.match(line,"^%d+$") if m then share.basic[tonumber(m)] = nil return "" end end nyagos.alias.list = function() local list={} for lnum,_ in pairs(share.basic) do list[ #list + 1 ] = lnum end table.sort(list) for i=1,#list do print(list[i],share.basic[list[i]]) end end nyagos.alias.run = function() local list={} for lnum,_ in pairs(share.basic) do list[ #list + 1 ] = lnum end table.sort(list) for i=1,#list do nyagos.exec(share.basic[list[i]]) end end nyagos.alias.new = function() share.basic = {} end
shellbasic.lua で保存して、lua_f shellbasic.lua
でロードすれば Ok