Est-il possible de lire ce qui suit à partir de la variable locale dans Lua?
local t = os.execute("echo 'test'")
print(t)
Je veux juste y parvenir: tout ce qui est exécuté via le ox.execute
et retournera n'importe quelle valeur, je voudrais l'utiliser dans Lua - par exemple echo 'test'
affichera test
dans la ligne de commande bash - est-il possible d'obtenir la valeur retournée (test
dans ce cas) à la variable locale Lua?
Vous pouvez utiliser io.popen()
à la place. Cela renvoie un descripteur de fichier que vous pouvez utiliser pour lire la sortie de la commande. Quelque chose comme ce qui suit peut fonctionner:
local handle = io.popen(command)
local result = handle:read("*a")
handle:close()
Notez que cela inclura la nouvelle ligne de fin (le cas échéant) que la commande émet.
function GetFiles(mask)
local files = {}
local tmpfile = '/tmp/stmp.txt'
os.execute('ls -1 '..mask..' > '..tmpfile)
local f = io.open(tmpfile)
if not f then return files end
local k = 1
for line in f:lines() do
files[k] = line
k = k + 1
end
f:close()
return files
end