Portanto, não tenho python disponível como comando em meu sistema, mas tenho python3. Então eu fiz alias python=python3
e pude fazer em vez python test.py
de apenas python3 test.py
.
Criei então um novo arquivo - test.sh - com o seguinte conteúdo:
#!/bin/bash
python test.py
Depois de habilitar a permissão de execução nesse arquivo, faço isso ./test.sh
e recebo um ./test.sh: line 2: python: command not found
erro.
Por que ps -p $$
estou executando o bash, que é o mesmo shell que estou usando ./test.sh.
Eu também tentei colocar alias python=python3
no final do meu ~/.bashrc
arquivo, mas isso não ajudou.
Alguma ideia?
Somente shells interativos leem ~/.bashrc na inicialização e, portanto, apenas shells interativos carregam seu alias ou definições de função. Quando o shell é iniciado como um interpretador de script, ele não carrega nenhum script "rc" externo e o alias não é definido.
Além disso, mesmo que os aliases tenham sido definidos como parte de seu script, sua expansão é desativada no modo "interpretador de script". (O Bash permite habilitar isso via 'shopt', mas é melhor não fazer isso. Os scripts devem usar funções em vez de aliases.)
Em vez de usar um alias, crie um executável 'python' real em algum lugar do seu $PATH, vinculando-o ao binário /usr/bin/python3. (~/bin ou /usr/local/bin são locais tradicionais para executáveis personalizados.)