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

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

Susan Sarandon
發布: 2024-11-26 17:43:11
原創
1043 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板