Eseguire comandi in Go

Mattepuffo's logo
Eseguire comandi in Go

Eseguire comandi in Go

Tra i vari linguaggi che ho provato, sicuramente Go è quello con il quale è più facile eseguire comandi di sistema.

Ed è anche quello che visualizza un output più simile alla riga di comando.

In questo articolo vediamo un paio di esempi.

Cominciamo dal più basico:

package main

import (
	"fmt"
	"os/exec"

	_ "github.com/mattn/go-sqlite3"
)

func main() {
	cmd := exec.Command("ls", "-la", "/home/fermat/Documenti/")

	out, err := cmd.Output()

	if err != nil {
		fmt.Println("Errore: ", err)
	}

	fmt.Println(string(out))
}

Qui eseguiamo un comando, passando i vari argomenti separati, e visualiziamo l'output.

Se invece volessimo eseguire un comando più lungo e duraturo:

package main

import (
	"fmt"
	"os"
	"os/exec"

	_ "github.com/mattn/go-sqlite3"
)

func main() {
	cmd := exec.Command("ping", "www.mattepuffo.com")
	cmd.Stdout = os.Stdout

	if err := cmd.Run(); err != nil {
		fmt.Println("Errore: ", err)
	}

}

Enjoy!


Condividi

Commentami!