首頁  >  文章  >  後端開發  >  如何使用 Go 在同一 Shell 中順序執行多個 exec 命令?

如何使用 Go 在同一 Shell 中順序執行多個 exec 命令?

Susan Sarandon
Susan Sarandon原創
2024-11-26 17:43:11927瀏覽

How to Run Multiple `exec` Commands Sequentially in the Same Shell Using Go?

使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn