Lua: Como interagir com o Sistema Operacional?

Hoje vamos falar da biblioteca OS que nos fornece alguns recursos do sistema operacional. Bom essa é uma biblioteca muito pequena, devido a implementação padrão de lua ser em ANSI C.

Por isso existem outros módulos que podemos instalar através do gerenciador LuaRocks, que adicionam algumas funcionalidades na linguagem, como a biblioteca Posix e LuaFileSystem, por exemplo.

OS.EXECUTE

Mas tem alguns métodos interessantes, o primeiro deles é o execute. Muitas vezes quando desenvolvemos um software precisamos fazer chamadas pro sistema operacional, para quem já usa Linux esse método é uma alternativa para você usar ao escrever scripts de automatização.

A função recebe um parâmetro apenas que é uma string com o comando que você quer executar, o maior problema dessa função é que você fica muito dependente do sistema já que os comandos mudam de acordo com o sistema operacional.

local os = require("os")

flag, status, code = os.execute("mkdir teste")

Então vamos testar essa execução, na prática, utilizando um comando de para criar um diretório no linux, por exemplo. Esse método retorna 3 variáveis, uma flag se o comando foi executado com sucesso ou não, o status pode ter dois retornos possíveis exit e signal. O retorno exit significa que o comando executou sem problemas, e signal significa que o comando foi terminado por um sinal do sistema operacional, e o último retorno é o código do sinal que o sistema operacional enviou. Eu não vou entrar muito afundo nisso, mas se vocês quiserem entender mais como interagir com o sistema operacional comenta aqui que eu faço um video só sobre isso, automatização de tarefas e essas coisas legais.

Leia também: 4 erros que cometi ao estudar Programação

OS.DATE

Outra função que essa biblioteca nos fornece é a função date que é muito importante em muitos tipos de software, então é um conteúdo indispensável para qualquer programador. Bom, para começar a manipular data, a função date pode ou não receber argumentos, se você chamar sem nenhum argumento, essa função vai retornar a data atual. Mas o legal é usar ela com um formato especifico. Vamos ver um exemplo:

print(os.date())
print(os.date('%d/%m/%y'))

Essa função pode receber dois parâmetros, mas nesse video vou mostrar só uma formatação básica.

OS.GETENV

A próxima função é a função getenv que nada mais é que uma forma da gente pegar os valores das variáveis de ambiente do sistema para usar nos nossos scripts.

print(os.getenv("HOME"))

Simples e muito útil.

OS.TMPNAME

Outra coisa útil que não é muito comentado é que podemos precisar de arquivos temporários e para isso temos uma função também nesse módulo que facilita isso para gente:

print(os.tmpname())

OS.REMOVE

E por último, mas não menos importante existe uma função que, dado um path (caminho) podemos excluir uma pasta vazia ou um arquivo. Essa função pode retornar se a execução foi bem sucedida ou não mais o erro ocorrido caso tenha dado problema na execução.

status, errors = os.remove('/home/jorge/teste.txt')

CONCLUSÃO

Esse é o básico do módulo os da biblioteca padrão da linguagem Lua, é bem pequeno e não tem tantos recursos, mas é bem útil. Espero que tenham gostado do conteúdo! Se inscrevam na nossa newsletter para não perder um artigo, e me siga nas redes sociais.

One thought on “Lua: Como interagir com o Sistema Operacional?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *