package main
import (
"fmt"
"github.com/codeskyblue/go-sh"
"log"
"strings"
)
func main() {
cmd := sh.Command("system_profiler", "SPHardwareDataType").
Command("awk", "/Serial/ {print $4}")
out, err := cmd.Output()
if err != nil {
log.Fatal(err)
}
serialNumber := strings.TrimSpace(string(out))
fmt.Println("Serial number is", serialNumber)
}
まぁシェルなら
system_profiler SPHardwareDataType | awk '/Serial/ {print $4}'
で済むんですが。
最初は標準ライブラリだけで書くかなぁと思いましたが、つい便利なライブラリ(codeskyblue/go-sh)を使ってしまいました。なぜGo?というツッコミはなしの方向で、、
おしまい