使用Go 在同一Shell 中執行多個Exec 指令
在Go 的os/exec 套件中,同時執行多個指令是一個挑戰。本文解決了需要在同一 shell 中順序執行命令的特定實例。
問題描述
提供的程式碼嘗試連續執行三個指令:
cd path; ./configure; make
但是,第二個指令./configure 失敗,並出現“沒有這樣的文件或目錄”錯誤,因為工作目錄未設定。
使用Shell 的解決方案
要在單一shell 實例中執行指令,可以使用下列方法:
cmd := exec.Command("/bin/sh", "-c", "cd path; ./configure; make") err := cmd.Run()
此指令使用選項-c 呼叫shell (/bin/sh),該選項在shell 中依序執行提供的命令。這允許 cd 更改後續命令的工作目錄。
使用工作目錄的解決方案
或者,如果只需要為命令設定特定目錄,則可以手動設定工作目錄:
config := exec.Command("./configure", "--disable-yasm") config.Dir = folderPath build := exec.Command("make") build.Dir = folderPath
透過設定命令的Dir 字段,在命令執行之前更改工作目錄執行,確保命令在正確的目錄中運行。
以上是如何使用 Go 在同一 Shell 中順序執行多個 exec 命令?的詳細內容。更多資訊請關注PHP中文網其他相關文章!