Go プログラムから Linux シェル組み込みコマンドを実行
Linux 上でプログラムの存在を検証しようとして、開発者が実行しようとするとエラーが発生しますGo プログラム経由で「command」ユーティリティを実行します。このエラーは、「command」が組み込みの Linux コマンドであり、システムの $PATH にある実行可能バイナリではないことが原因で発生します。疑問が生じます: Go プログラム内で組み込み Linux コマンドをどのように実行できますか?
ネイティブ Go ソリューション: exec.LookPath
提供されたリソースで提案されているように、 「command」ユーティリティはシェルに組み込まれています。 Go のネイティブ実行の場合、exec.LookPath 関数が解決策を提供します。この関数は、システムの実行可能パスで指定されたコマンドを検索し、見つかった場合は完全なパスを返します。
path, err := exec.LookPath("command") if err != nil { // Handle error } fmt.Println(path) // Prints the full path to the command
代替アプローチ
ネイティブ Go メソッドが適切でない場合、代替アプローチが存在します:
cmd := exec.Command("which", "foobar") out, err := cmd.Output() if err != nil { // Handle error } fmt.Println(string(out)) // Prints the full path to the program (if found)
cmd := exec.Command("/bin/bash", "-c", "command -v foobar") out, err := cmd.Output() if err != nil { // Handle error } fmt.Println(string(out)) // Prints the full path to the program (if found)
以上がGo プログラムから組み込み Linux シェル コマンドを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。