Isso porque env
está pesquisando python
no seu PATH
, não em qualquer shell incorporado, ou alias ou função. Como você definiu python
como python3
como um alias, env
não o encontrará, pesquisará PATH
e resolverá python
a /usr/bin/python
(que é python2
). / p>
Você pode verificar todos os locais disponíveis do executável python
, em bash
, do:
type -a python
Você está sem sorte se quiser usar um alias no shebang, pois, por definição, shebang precisa ser um caminho completo para o executável do interpretador, que o env
deve resolver python
para quando você usa /usr/bin/env python
. Para interpretar o script usando python3
use o shebang:
#!/usr/bin/env python3