gpt4 book ai didi

intellij-idea - 使用 filepath.Glob 的 Golang 怪异行为

转载 作者:IT王子 更新时间:2023-10-29 01:58:49 29 4
gpt4 key购买 nike

我对 Golang 上的 glob 使用感到困惑,我可能遗漏了一些环境变量。我不知道我这样做对不对。

这段代码在我的 IDE (Intellij IDEA) 上运行时工作得很好,但是当它通过 go run 在操作系统上运行时它不起作用。我不知道有什么区别。

package main

import (
"path/filepath"
"fmt"
"os"
)

func main() {

file := os.Args[1]

matches, err := filepath.Glob(file)

if err != nil {
fmt.Println(err)
os.Exit(1)
}
fmt.Println(fmt.Sprintf("Number of matches:%d", len(matches)))
fmt.Println(matches)
}

在操作系统上运行

go run globtest.go /Users/bernardovale/glotest/*.bkp
Number of matches:1
[/Users/bernardovale/glotest/test1.bkp]

ls -l /Users/bernardovale/glotest/*.bkp
-rw-r--r-- 1 bernardovale staff 0 May 27 12:06 /Users/bernardovale/glotest/test1.bkp
-rw-r--r-- 1 bernardovale staff 0 May 27 12:06 /Users/bernardovale/glotest/test2.bkp
-rw-r--r-- 1 bernardovale staff 0 May 27 12:06 /Users/bernardovale/glotest/test3.bkp

在 IntelliJ IDEA 上运行

go run on the IDEA

最佳答案

这里的区别在于 shell 正在执行 glob 并为您的应用程序提供单独的值。从 shell 执行时,您应该用双引号将 glob 括起来,以确保它不会首先被您的 shell 评估。请参见下面的示例。

Seans-MBP-2:~ sthorne$ echo Testing*
Testing Testing2 Testing3
Seans-MBP-2:~ sthorne$ echo "Testing*"
Testing*

关于intellij-idea - 使用 filepath.Glob 的 Golang 怪异行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37487189/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com