Posso executar o arquivo .go compilado sem chmod

0

Estou aprendendo a programar no go idioma do google, tenho um script:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

Então, eu compilei com:

go build /home/user/HelloWorld.go

Percebi que poderia executar o resultado compilado sem executar:

chmod +x /home/user/HelloWorld

Por que isso acontece?

    
por RandomEagle 04.04.2017 / 02:26

1 resposta

1

Tenha em mente que o comando build está invocando várias partes da cadeia de ferramentas go com o objetivo implícito de produzir um executável . Você poderia pedir para ir apenas compilar, dizer ou ligar, pegando cada ferramenta por vez, e seria apenas o último passo na cadeia de ferramentas de construção que realmente define o bit executável.

Isso não é especificamente algo interessante. É o que fazem as cadeias de ferramentas do compilador. Você deve ter em mente que um shell script não é um executável compilado: é por isso que você precisa definir o bit executável para que quando o kernel ler a primeira linha ele saiba que invocar o shell e passar o corpo do script para ele.

    
por 04.04.2017 / 05:19