偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Golang調(diào)用系統(tǒng)命令時(shí)如何指定執(zhí)行路徑(切換目錄)?

開(kāi)發(fā) 前端
假如從代碼托管平臺(tái)(github、gitlab、gitee等)克隆一個(gè)Golang項(xiàng)目,使用Git clone完成以后,需要切換(cd)到這個(gè)項(xiàng)目里面去做一些操作,例如使用Go mod download安裝依賴(lài)包。

場(chǎng)景帶入

先看一個(gè)場(chǎng)景,假如從代碼托管平臺(tái)(github、gitlab、gitee等)克隆一個(gè)Golang項(xiàng)目,使用git clone完成以后,需要切換(cd)到這個(gè)項(xiàng)目里面去做一些操作,例如使用go mod download安裝依賴(lài)包。

這一系列操作如果使用程序來(lái)實(shí)現(xiàn)的話還是有一點(diǎn)不同的,特別是切換到項(xiàng)目目錄的動(dòng)作。人工操作的話直接執(zhí)行 cd dst-path 命令即可,使用程序調(diào)用 cd 系統(tǒng)命令這么做卻是無(wú)效的。

Golang中的實(shí)現(xiàn)方法

Golang中調(diào)用系統(tǒng)命令的方法是這樣的,以上面的git clone為例:

package main

import "os/exec"

func main() {
err := exec.Command("git", "clone", "https://github.com/xxx/test").Run()
if err != nil {
panic(err)
}
}

接下來(lái)就需要切換到這里的 test 目錄去執(zhí)行 go mod tidy 命令了,你可能會(huì)想到這么實(shí)現(xiàn):

package main

import "os/exec"

func main() {
err := exec.Command("git", "clone", "https://github.com/xxx/test").Run()
if err != nil {
panic(err)
}

err = exec.Command("cd", "./test").Run()
if err != nil {
panic(err)
}

err = exec.Command("go", "mod", "download").Run()
if err != nil {
panic(err)
}
}

到這里你就錯(cuò)了,在程序里這么寫(xiě)是不會(huì)生效的,可以執(zhí)行代碼看看效果。正確的方式應(yīng)該這么寫(xiě):

package main

import "os/exec"

func main() {
err := exec.Command("git", "clone", "https://github.com/xxx/test").Run()
if err != nil {
panic(err)
}

cmd := exec.Command("go", "mod", "download")
cmd.Dir = "./test"
err = cmd.Run()
if err != nil {
panic(err)
}
}
責(zé)任編輯:姜華 來(lái)源: 今日頭條
相關(guān)推薦

2010-06-03 11:23:19

Hadoop

2020-08-12 06:59:44

Linux切換目錄命令

2010-06-22 11:09:14

Linux At命令

2023-12-13 18:44:02

Linux定時(shí)任務(wù)操作系統(tǒng)

2009-07-31 17:21:28

linux cd命令linux cd命令詳Pushd

2009-10-27 13:10:49

linux cd命令

2009-04-15 20:32:39

Linux工作目錄用戶(hù)主目錄

2020-06-04 17:00:37

Linux命令腳本

2017-03-10 10:37:16

Linux命令腳本

2009-09-04 09:36:17

Java調(diào)用

2023-11-17 08:02:34

系統(tǒng)調(diào)用linux

2020-11-06 07:42:01

Linux命令腳本

2019-07-29 09:13:04

route路由ip

2009-07-31 17:02:14

linux cd命令CDPATHlinux cd命令詳

2010-01-21 09:53:55

VB.NET獲取程序運(yùn)

2019-11-26 08:40:16

LinuxSSHSFTP

2019-04-25 09:52:38

SSHLinux服務(wù)器

2022-12-09 11:04:14

straceLinux

2020-03-30 08:45:31

Linux命令

2010-09-07 16:11:19

執(zhí)行DB2命令
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)