Sono confuso riguardo al seguente script ( hello.go
).
//usr/bin/env go run $0 $@ ; exit
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
Può eseguire. (su MacOS X 10.9.5)
$ chmod +x hello.go
$ ./hello.go
hello, world
Non ho sentito parlare di Shebang a partire da //
. E funziona ancora quando inserisco una riga vuota nella parte superiore dello script. Perché funziona questo script?
///....
invece di //...
essere il più compatibile!
go run "$0" "$@"
//&>/dev/null;x="${0%.*}";[ ! "$x" -ot "$0" ]||(rm -f "$x";cc -o "$x" "$0")&&exec "$x" "$@"
...