os/exec.LookPathを使うと、コマンドが実行可能かチェックできる。$PATH を考慮して探してくれるが、スラッシュが入っていると $PATH を考慮しない。 package main import ( "log" "os/exec" ) func main() { tests := []string{ "hoge", "/bin/hoge", "./hoge", } for _, test := range(tests) { if _, err := exec.LookPath(test); err != nil { log.Print(err) } } } 2013/12/10 19:18:34 exec: "hoge": executable file not found in $PATH 2013/12/10 19:18:34 exec: "/bin/hoge": sta