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!
go exec command
Commentami!