標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

素の Lua で setenv

環境変数を参照する場合は os.getenv が使えるが、設定するための os.setenv 相当のものはない。

が、os.execute で自分自身を呼び出せば、無理やり設定することも可能だ(ただし、起動時のみ)

--- LANG=C を設定したい時:
if os.getenv("LANG") ~= "C" then
    if string.match(os.getenv("OS") or "","^Windows") then
        os.execute('set "LANG=C" & lua "' .. arg[0] .. '"')
    else
        os.execute('LANG=C ; export LANG ; lua "' .. arg[0] .. '"')
    end
    os.exit(0)
end
print("LANG=" .. (os.getenv("LANG") or "null"))

まぁ、普通は Lua を呼び出すホスト側で setenv 相当の機能をつけるものだけどね (nyagos-Lua には nyagos.env["変数名"] が代入・参照両方できる)