Question

Quand je fais un "os.execute" à Lua, une console apparaît rapidement, exécute la commande, puis se ferme. Mais existe-t-il un moyen de récupérer la sortie de la console en utilisant uniquement les bibliothèques Lua standard?

Était-ce utile?

La solution

Je pense que vous voulez ce http://pgl.yoyo.org/luai/i /io.popen io.popen. Mais ce n'est pas toujours compilé dedans.

Autres conseils

Si vous avez io.popen, c’est ce que j’utilise:

function os.capture(cmd, raw)
  local f = assert(io.popen(cmd, 'r'))
  local s = assert(f:read('*a'))
  f:close()
  if raw then return s end
  s = string.gsub(s, '^%s+', '')
  s = string.gsub(s, '%s+

Si vous n'avez pas io.popen, alors vraisemblablement popen (3) n'est pas disponible sur votre système et vous vous trouvez dans un yaourt profond. Mais tous les ports Lua unix / mac / windows auront io.popen.

, '') s = string.gsub(s, '[\n\r]+', ' ') return s end

Si vous n'avez pas io.popen, alors vraisemblablement popen (3) n'est pas disponible sur votre système et vous vous trouvez dans un yaourt profond. Mais tous les ports Lua unix / mac / windows auront io.popen.

Je ne connais pas spécifiquement Lua, mais vous pouvez généralement exécuter une commande en tant que:

comd >comd.txt 2>&1

pour capturer la sortie et l'erreur dans le fichier comd.txt, puis utilisez les fonctions d'E / S du fichier de langues pour le lire.

C’est ce que je ferais si le langage lui-même ne permettait pas de capturer les sorties standard et les erreurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top