我正在尝试编写一个小脚本来将当前目录更改为我的项目目录:
#!/bin/bash
cd /home/tree/projects/java
Run Code Online (Sandbox Code Playgroud)
我将此文件保存为proj,添加了执行权限chmod,并将其复制到/usr/bin.当我通过以下方式调用它时
proj,它什么都不做.我究竟做错了什么?
在nodejs中,我使用__dirname.在Golang中相当于什么?
我用Google搜索并发现了这篇文章http://andrewbrookins.com/tech/golang-get-directory-of-the-current-file/.他使用以下代码的地方
_, filename, _, _ := runtime.Caller(1)
f, err := os.Open(path.Join(path.Dir(filename), "data.csv"))
Run Code Online (Sandbox Code Playgroud)
但这是在Golang中正确的方式或惯用方式吗?
我想cd用 Go实现命令,main.go:
func main() {
flag.Parse()
if flag.NArg() == 0 {
curUser, err := user.Current()
if err != nil {
log.Fatal(err)
}
os.Chdir(curUser.HomeDir)
// or like this
// cmd := exec.Command("cd", curUser.HomeDir)
fmt.Println(os.Getwd()) // ok in application
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我go run main.go在 shell 中运行时,它仍然没有切换到我的主目录。
那么如何通过运行 go 文件来更改我在 shell 中的工作目录呢?
