ホームページ > バックエンド開発 > Golang > Go プログラムから組み込み Linux シェル コマンドを実行するにはどうすればよいですか?

Go プログラムから組み込み Linux シェル コマンドを実行するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-26 17:10:14
オリジナル
204 人が閲覧しました

How Can I Execute Built-in Linux Shell Commands from a Go Program?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート