local macro = require 'macro'
macro.define('$',function(get)
local t,v = get()
if t == 'iden' then
return 'os.getenv("'..v..'")'
elseif t == '(' then
local rest = get:upto ')'
return 'eval("'..tostring(rest)..'")'
end
end)
return function()
return [[
local function eval(cmd)
local f = io.popen(cmd,'r')
local res = f:read '*a'
f:close()
return res
end
]]
end