Closed2
【Go】os/exec で外部コマンドを実行する

os/execパッケージとは
- Goのプログラムから外部のプログラムを実行するパッケージである。
- Pythonでいうところのsubprocessにあたる。

基本的な使い方
- 構造体を定義して実行する方法
func ExecLsByCreateStruct() {
var bufOut bytes.Buffer
var bufErr bytes.Buffer
cmd := exec.Cmd{}
cmd.Stdout = &bufOut
cmd.Stderr = &bufErr
cmd.Path = "/bin/ls"
if err := cmd.Start(); err != nil {
fmt.Println(err)
os.Exit(1)
}
if err := cmd.Wait(); err != nil {
fmt.Println(err)
os.Exit(1)
}
fmt.Println(bufOut.String())
}
- 関数で実行する方法
func ExecLsByFunction() {
var bufOut bytes.Buffer
var bufErr bytes.Buffer
cmd := exec.Command("lll")
cmd.Stdout = &bufOut
cmd.Stderr = &bufErr
if err := cmd.Run(); err != nil { // Run関数の場合はWaitが不要
fmt.Println(err)
os.Exit(1)
}
fmt.Println(bufOut.String())
}
このスクラップは2023/10/14にクローズされました