我对以下脚本(hello.go
)感到困惑。
//usr/bin/env go run $0 $@ ; exit
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
它可以执行。(在MacOS X 10.9.5上)
$ chmod +x hello.go
$ ./hello.go
hello, world
我还没有听说过Shebang开头//
。当我在脚本顶部插入空白行时,它仍然有效。为什么该脚本有效?
go run "$0" "$@"
//&>/dev/null;x="${0%.*}";[ ! "$x" -ot "$0" ]||(rm -f "$x";cc -o "$x" "$0")&&exec "$x" "$@"
...