猿问

转到 ~(波浪字符)目录路径

我正在尝试在 golang 中执行一个命令,该命令转到 ~ 路径。就像在终端中运行一样ls ~

最终我想在位于 ~/TestDirectory 的特定目录中创建命令,例如 git pull、mkdir 等。

这是我试过的:

  1. out, _ := exec.Command("ls", "~").Output()-> 输出为空,因此运行exec.Command("cd", "~")不会转到 ~ 目录。

  2. out, _ := exec.Command("ls", "../..").Output()-> 输出比我当前的目录高 2 个目录,但它不是这样做的方法,因为当前项目可能在任何地方

  3. 另外,我尝试设置命令的当前目录,输出为零。

    cmd := exec.Command("cd")
    cmd.Dir = "~"
    cmd.Run()


慕桂英546537
浏览 104回答 1
1回答

慕盖茨4494581

由您的 shell扩展~(扩展到您的$HOME,至少在 POSIX 系统上;阅读有关globbing和glob(7)的信息)。你可以用os.Getenv("HOME")它来扩展另外,我尝试设置命令的当前目录,输出为零。每个进程都有自己的 工作目录。但是exec.Command正在运行一个新进程,因此在您的情况下,只有该进程(不是您自己的进程)正在更改其工作目录。你想用来os.Chdir改变你自己进程的工作目录。
随时随地看视频慕课网APP

相关分类

Go
我要回答