-- quote_eval.lua
--     逆クォートの括弧版。ネスト可能。
--     「echo $(echo bar $(echo foo))」は「bar foo」と出力される。

function nyaos.filter.quote_eval(cmdline)
    return cmdline:gsub('%$(%b())', function(m)
        local result, err = nyaos.eval(string.sub(m, 2, -2))
        if err then
            print('error in substitution: '..err)
            return false
        else
            return result:gsub('^%s+', ''):gsub('%s+$', '')
        end
    end)
end
