Golang错误:找不到包命令

I'm getting this error when running a .go file.

./instance.go: line 1: package: command not found
./instance.go: line 3: syntax error near unexpected token `newline'
./instance.go: line 3: `import ('

So far I've seen that the error normally means that GOPATH is not set, however, echo "$GOPATH" outputs /root/go and my path is currently /bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/go/bin:/root/go/bin:/bin:/root/go/bin .

Here's the first few lines of instance.go:

package webrun

import (
        "context"
        "crypto/hmac"
        "crypto/rand"

These are not Go errors.

However, I was able to reproduce your errors by trying to execute a go source file:

$ chmod +x in.go
$ ./in.go
./in.go: line 1: package: command not found
./in.go: line 3: syntax error near unexpected token `newline'
./in.go: line 3: `import ('

You can't do this with Go, since it is not interpreted. You need to compile your code to an executable before you can run it.

You can read the help for how to compile and run a go program here.

In your case,

go run instance.go

will try to compile and run the source file you're executing, but as another commenter points out, code that is not in the main package is not designed to be executed directly.

If this is your code, you need to write it inside package main, and if it is not, then you're probably trying to execute a library (which means it's not clear to me what you're trying to do).

You can only ./ files which are runnable. Your go file is not runnable. You need to compile it to binary and do ./(dotslash) on it.