登录
首页 >  Golang >  Go问答

Go语言如何在多个不同的文件夹中执行脚本

来源:stackoverflow

时间:2024-03-18 18:00:30 230浏览 收藏

在 Go 语言中,当脚本文件位于不同的文件夹时执行脚本可能存在问题,因为工作目录会发生变化,导致相对导入失效。本文介绍了一种解决方案,即使用环境变量来定义脚本文件的绝对路径,然后在脚本执行函数中获取该环境变量,以解决此问题。

问题内容

我目前正在使用脚本为每个测试加载和拆卸 mongodb 测试数据库。 我这样做如下:

func loaddb() {
    cmd := exec.command("../scripts/load_db.py")
}

我在每次测试中调用这个函数。 问题是一些测试文件比其他测试文件从该脚本中被进一步删除:

+ service1
   – service1.go
   – service1_test.go
+ service2
   + sub
      – subservice2.go
      – subservice2_test.go
    – service2.go
    – service2_test.go

问题是工作目录从我调用函数来执行脚本的位置发生变化,因此相对导入不起作用。我不想使用绝对路径,因为此代码可能位于不同的计算机上。 能够从多个不同位置调用相同脚本的好解决方案是什么?


解决方案


如何在每台计算机上定义设置 load_db.py 脚本的绝对路径的环境变量?

然后在 loaddb() 函数中,您可以使用 os 包中的 getenv() 函数获取环境变量。

https://golang.org/pkg/os/#Getenv

func LoadDB() {
    path := os.Getenv("LOAD_DB_PATH") // /absolute/path/to/script
    cmd := exec.Command(path)
}

今天关于《Go语言如何在多个不同的文件夹中执行脚本》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>