相关疑难解决方法(0)

为什么"cd"不能在shell脚本中工作?

我正在尝试编写一个小脚本来将当前目录更改为我的项目目录:

#!/bin/bash
cd /home/tree/projects/java
Run Code Online (Sandbox Code Playgroud)

我将此文件保存为proj,添加了执行权限chmod,并将其复制到/usr/bin.当我通过以下方式调用它时 proj,它什么都不做.我究竟做错了什么?

linux shell

735
推荐指数
18
解决办法
59万
查看次数

如何获取当前正在运行的文件的目录?

在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中正确的方式或惯用方式吗?

go

213
推荐指数
11
解决办法
16万
查看次数

如何在 Go 中更改 shell 的当前工作目录?

我想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 中的工作目录呢?

代码运行

go

2
推荐指数
1
解决办法
1657
查看次数

标签 统计

go ×2

linux ×1

shell ×1