Ich bin verwirrt über Glob-Nutzung auf Golang, ich vermisse wahrscheinlich einige Umgebungsvariable. Ich weiß nicht, ob ich es richtig mache.Golang seltsames Verhalten mit Dateipfad.Glob
Dieser Code funktioniert einwandfrei, wenn er auf meiner IDE (Intellij IDEA) ausgeführt wird, aber wenn dies auf dem Betriebssystem über go run
ausgeführt wird, funktioniert es nicht. Ich kann nicht herausfinden, was der Unterschied ist.
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)
}
Laufen auf OS
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
Laufen auf IntelliJ IDEA
Sie lassen die Shell den Glob für Sie tun. Drucken Sie die Argumente aus Ihrem Programm und sehen Sie, was Sie bekommen. – JimB
du hast Recht, ich wusste das nicht. Danke vielmals. Posten Sie es als Antwort, wenn Sie mögen. –