J'aime utiliser des shebangs pour exécuter mes scripts Perl directement :
#!/usr/bin/env perl
Qu'est-ce que le shebang pour les programmes de Go ?
J'aime utiliser des shebangs pour exécuter mes scripts Perl directement :
#!/usr/bin/env perl
Qu'est-ce que le shebang pour les programmes de Go ?
Il n'y en a pas par défaut. Il existe cependant un outil tiers appelé gorun qui vous permettra de le faire. https://wiki.ubuntu.com/gorun
Malheureusement, les compilateurs n'aiment pas la ligne shebang. Vous ne pouvez pas compiler le même code que vous exécutez avec gorun.
Les programmes Go sont compilés en binaires ; Je ne pense pas qu'il existe une option pour les exécuter directement à partir de la source.
Ceci est similaire à d'autres langages compilés tels que C++ ou Java. Certains langages (comme Haskell) offrent à la fois un mode entièrement compilé et un mode "script" que vous pouvez exécuter directement depuis la source avec une ligne shebang.
Jusqu'à présent, enchaîner sh et gorun s'est avéré être la solution la plus portable pour moi.
///bin/sh -c true && exec gorun "$0" "$@"
package main
import (
"fmt"
"log"
"os"
)
func main() {
fmt.Println("hello")
log.Printf("args: %v", os.Args)
// just to test exit code, would be 0x11
os.Exit(17)
}
SORTIR:
00:~ $ chmod a+x test.go && ./test.go rawr
hello
2020/01/21 23:17:40 args: [./test.go rawr]
11:~ $
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.