Alterar alvo de shebang

Alterar alvo de shebang

Gostaria de criar o alvo python3para ser usado em shebangs. Por exemplo. use a primeira linha #!/usr/bin/env python3.

O que eu tentei:

  • setenv python3 PATH_TO_BINARY, também coloque-o em .cshrc, echo $python3 mostra também o caminho

  • /bin/env NAME=python3 PATH_TO_BINARY, abre python3 mas não permite o uso do shebang. O mesmo para /bin/env python3=PATH_TO_BINARY

Caso seja importante, gostaria de resolver o seguinte problema:

Estou trabalhando em um rhel 6sistema onde não consigo instalar diretamente, python3mas posso usá-lo sobre anaconda3o qual está instalado em um recurso de rede acessível. Em vez de colocar o shebang com o caminho absoluto, gostaria de definir corretamente o caminho python3 para escrever código portátil.

Responder1

Nesse caso, não é a #!linha que você deveria alterar, mas o seu arquivo $PATH.

#!/usr/bin/env python3

Isto faz com que o python3intérprete seja procurado nos diretórios listados em sua $PATHvariável.

Se python3estiver instalado em, por exemplo, $HOME/local/bin, então este diretório deve estar presente em$PATH antesqualquer outro diretório que também possa conter um python3intérprete, caso contrário, esse será usado em vez do seu próprio intérprete $HOME/local/bin.

Então você precisa definir

PATH="$HOME/local/bin:$PATH"

Na linha de comando ou em um script de inicialização do shell ( ~/.bashrcpor exemplo). Os usuários do C-shell fazem isso de maneira diferente ...

set path = ($HOME/local/bin $path)

Em geral, a #!linha identificao intérpretepara o script, ou seja, qual programa usar para analisar e executar o arquivo. Um sedscript, por exemplo, pode usar #!/usr/bin/sed -f.

informação relacionada