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?”