Linha Shebang pra GoLang

Shebang GOLANG GO

Qual a forma mais apropriada para definir uma linha shebang para Script escrito em Linguagem GO ?

Existem algumas alternativas e vou descrever aqui.

A mais simples é essa abaixo:

Coloque na primeira linha do programa principal

//usr/local/go/bin/go run $0 $@ ; exit

No caso de você não saber onde está instalado o GO use o comando `which go` para verificar.

Exemplo:

//usr/local/go/bin/go run $0 $@ ; exit
package main
import "fmt"
func main() {
  fmt.Println(“Oi SysAdmin. Este é um script escrito em GO")
}

A razão para isso funcionar é a seguinte: O compilador go trata as duas barras // como comentário e a shell, por outro lado ignora a barra extra existente. Desta forma tanto a sua Shell quanto o Builder do GO irao entender corretamente o que deve ser feito.

Não se esqueça de conceder acesso de execução no arquivo .go

Supondo que o arquivo se chame hello.go podemos executar

chmod a+rx hello.go

Existem argumentações para se usar algo um pouco mais rebuscado para evitar problema de compatibilidade entre ambientes.

///usr/bin/true; exec /usr/bin/env go run "$0" "$@"

Eu prefiro usar como mostrado abaixo em ambiente de desenvolvimento..

///usr/bin/true; echo •• Executando "$0"; exec /usr/bin/env go run "$0" "$@"

Exemplo:

///usr/bin/true; echo •• Executando "$0"; exec /usr/bin/env go run "$0" "$@"
package main 
import "fmt"
func main() {
  fmt.Println(“Oi SysAdmin. Este é um script escrito em GO")
}

Deixe seu nome e e-mail para que eu possa enviar cupons de desconto para o curso sobre Docker