Biblioteca Sistemului de Operare în Lua: os.time, os.date, os.execute și os.getenv în Lua

Ghid complet pentru biblioteca os în Lua: manipularea timestamp-urilor, formatarea datelor calendaristice cu os.date, lansarea comenzilor de sistem cu os.execute și citirea variabilelor de mediu.

Sintaxă
os.time(); os.date("%Y-%m-%d %H:%M:%S"); os.getenv("HOME"); os.execute("ls")

Biblioteca os pune la dispoziție funcții de nivel de sistem pentru interacțiunea cu mediul gazdă: ceasul de sistem, calendarul, variabilele de mediu, rularea proceselor externe și gestionarea fișierelor temporare.

Timestamp Unix și formatare calendaristică cu os.date
-- Obținerea timestamp-ului curent (număr de secunde de la 1 Ianuarie 1970 UTC):
local acum = os.time()
print("Unix Timestamp curent:", acum)

-- Formatare lizibilă conform specificatorilor strftime:
local dataFormatata = os.date("%Y-%m-%d %H:%M:%S", acum)
print("Data și ora formatată:", dataFormatata)

-- Preluarea componentelor de dată sub formă de tabel Lua:
local t = os.date("*t", acum)
print("An:", t.year)
print("Lună:", t.month)
print("Zi:", t.day)
print("Ora:", t.hour)
print("Ziua săptămânii (1=Duminică):", t.wday)

-- Calculul diferenței între două momente de timp:
local t1 = os.time{year=2026, month=1, day=1, hour=0}
local difSecunde = os.difftime(acum, t1)
print("Zile trecute de la începutul anului:", math.floor(difSecunde / 86400))
Variabile de mediu, comenzi de sistem și cronometrare
-- Citirea variabilelor de mediu ale sistemului de operare:
local caleAcasa = os.getenv("HOME") or os.getenv("USERPROFILE")
print("Directorul utilizatorului:", caleAcasa)

-- Măsurarea precisă a timpului CPU consumat de script:
local start = os.clock()
for i = 1, 1000000 do
    local _ = i * 2
end
local timpConsumat = os.clock() - start
print(string.format("Timp CPU consumat: %.4f secunde", timpConsumat))

-- Executarea unei comenzi shell (returnează succes, tip ieșire, cod exit):
local ok, tip, cod = os.execute("echo 'Mesaj din subproces Lua'")
print("Executat cu succes:", ok, "Cod ieșire:", cod)

-- Ștergerea și redenumirea fișierelor pe disc:
-- os.rename("vechi.txt", "nou.txt")
-- os.remove("fisier_inutil.log")
Funcție Argumente Descriere
os.getenv(var) var: string Returnează valoarea variabilei de mediu sau nil dacă nu există.
os.clock() niciunul Returnează timpul procesor în secunde alocat de sistem scriptului curent.
os.exit(code, close) [code], [close] Încheie imediat procesul Lua cu un cod de stare opțional.
os.tmpname() niciunul Generează un nume de fișier temporar unic în directorul de sistem.