在新目录中打开Shell

时间:2014-10-24 04:48:41

标签: go

我正在尝试将我的shell cd放入目录中。有一个更好的方法吗?这种方式唯一的问题是我的shell是当前shell的子进程。让我不得不退出两次。

package main

func main(){
  err = syscall.Chdir(os.Getenv("HOME") + "/dev")
  exitIfErr(err)
  err = syscall.Exec(os.Getenv("SHELL"), []string{""}, os.Environ())
  exitIfErr(err)
}

1 个答案:

答案 0 :(得分:2)

您可以使用os.Chdir来更改目录:

func Chdir(dir string) error
  

Chdir将当前工作目录更改为指定目录。如果出现错误,则其类型为*PathError

关于exec我建议使用os/exec包来运行你的子进程。它可以在适用的情况下,在* nix系统甚至Windows之间挑选出所有类型的可移植性细微差别。