140 votes

Comment obtenir la sortie d’une commande système dans Go ?

Disons que je veux exécuter 'ls' dans un programme go et stocker les résultats dans une chaîne. Il semble y avoir quelques commandes pour forker les processus dans les packages exec et os, mais elles nécessitent des arguments de fichier pour stdout, etc. Existe-t-il un moyen d’obtenir la sortie sous forme de chaîne ?

445voto

Fatih Arslan Points 2759

Il existe maintenant un moyen plus simple :

est la sortie standard. C’est au format, mais vous pouvez le changer en chaîne facilement avec:

Vous pouvez également utiliser à la place de ce qui renvoie la sortie standard et l’erreur standard.

Exec. Commander

67voto

Travis R Points 8935

Pour obtenir stdout et stderr dans des chaînes distinctes, vous pouvez utiliser des tampons d’octets comme suit :

17voto

Inasa Xia Points 143
<pre class="lang-golang prettyprint-override"><code></code><p>ou</p><pre class="lang-golang prettyprint-override"><code></code></pre></pre>

6voto

muka Points 403

Je l’ai utilisé avec une version récente de GO (~1.11)

4voto

esm Points 914

Deux options, selon le paradigme que vous préférez :

  1. Os. ForkExec()
  2. Exec. Exécuter()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X