從Go 程式執行內建Linux 指令
嘗試在Go 程式中執行shell 指令可能會遇到內建指令的問題,它們不像傳統的二進位檔案一樣在$PATH 中找到。本文探討如何在 Go 程式中執行內建 Linux 指令。
在提供的範例中,直接使用 exec.Command() 執行「command -v foo」會失敗,因為此指令是內建 shell功能。為了解決這個問題,有幾種方法:
exec.LookPath
透過 exec.LookPath 可以使用本機 Go 支援來尋找內建指令。此函數在系統的 PATH 中搜尋可執行文件,如果找到則返回其完整路徑。找到後,您可以使用此路徑來執行命令。
exec.Command with Shell Wrapper
當直接執行不可行時,您可以利用系統的 shell執行內建指令。這可以透過將命令包裝在shell 命令中來實現,例如:
exec.Command("/bin/bash", "-c", "command -v foo")
這裡,「/bin/bash -c」包裝器指示系統在shell 中執行命令,從而使構建的-in命令可訪問。
以上是如何從Go程式執行Linux內建指令?的詳細內容。更多資訊請關注PHP中文網其他相關文章!