“comando não encontrado” para scripts em ~ / bin

0

Eu instalei o Ubuntu 17.04 e copiei meus scripts personalizados para ~/bin . Então eu fiz todos os arquivos nesse diretório executável, via chmod . Eu verifiquei na interface gráfica e os arquivos são executáveis.

Eu verifiquei ~ / .profile, e ele já contém as seguintes linhas (que NÃO estão comentadas):

if [ -d "$HOME/bin" ]; then
    PATH="$HOME/bin:$PATH" 
fi

No entanto, quando tento executar um script (nesse diretório) digitando my-script-name no terminal, recebo o erro "comando não encontrado", mas quando digito ~/bin/my-script-name , ele é executado corretamente.

Eu consegui executar scripts personalizados a partir do diretório ~/bin desta maneira em 16.04 LTS, mas não funciona para mim em 17.04. O que preciso fazer para que isso funcione? O 17.04 não verifica mais esse diretório?

    
por Be Brilliant 26.08.2017 / 04:37

3 respostas

3

~/.profile é automaticamente originado apenas no login. Você precisa fazer logout e fazer login para que as alterações entrem em vigor.

Você também pode executar source ~/.profile em um terminal, mas as alterações entrarão em vigor apenas para esse terminal.

Quando você executou exec -l bash , isso abriu um shell de login, mas apenas nesse terminal.

    
por wjandrea 26.08.2017 / 06:54
0

Eu li em algum lugar para tentar executar exec -l bash e isso resolveu o problema dentro dessa janela de terminal, desde que ela estivesse aberta. No entanto, quando fechei a janela e tentei executar scripts em uma nova janela, tive o mesmo problema novamente.

Nesse ponto, tentei reinicializar e o problema foi corrigido, embora eu realmente não entenda o motivo. Quando eu executo export | grep $PATH , agora recebo o seguinte:

declare -x PATH="/home/myusername/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"

Portanto, é possível que a execução de exec -l bash e a reinicialização possam ter corrigido o problema. Eu apreciaria quaisquer comentários ou explicações sobre se este foi um curso de ação relevante, ou se foi uma casualidade aleatória que foi corrigida pela reinicialização.

    
por Be Brilliant 26.08.2017 / 06:21
0

Se você quiser personalizar seu caminho para executar scripts na sessão de terminal , é preferível colocar declarações Path no seu arquivo ~ / .bashrc.

Então, edite seu arquivo ~ / .bashrc e adicione no final deste arquivo, a seguinte linha:

export PATH=$PATH:$HOME/bin

ou

export PATH=$PATH:~/bin

para que toda vez que você abrir uma sessão de terminal, você terá o PATH configurado corretamente. Você não terá que reinicializar ou relogar sua sessão para isso !!

    
por Redbob 28.08.2017 / 06:02