Como localizar onde é isso mencionado no bash

0

Eu removi rvm mas agora toda vez que faço ls , recebo esta mensagem:

-bash: /usr/local/rvm/scripts/initialize: No such file or directory

Parece que ainda está chamando de algum lugar, mas parece que não consegue encontrar de onde. Como posso ver onde está sendo chamado?

    
por Martin 15.09.2013 / 17:32

3 respostas

2

Saber o nome do arquivo que está sendo chamado facilita isso.

Crie o arquivo /usr/local/rvm/scripts/initialize (talvez você tenha que criar os diretórios intermediários) e forneça o seguinte conteúdo:

#!/bin/bash
exec >>/tmp/trace.log
echo $0 Invoked.
P=$$
while (( P > 1 )); do
  printf '%s %s\n' "$(stat -c%N /proc/$P/cwd)" "$(ps -p $P -ocmd=)"
  P=($(ps -p $P -oppid= ) ) || exit
done

Torne-o mundialmente executável ( chmod a+x /usr/local/rvm/scripts/initialize ). Em seguida, aguarde o arquivo de rastreio ser exibido. Ele conterá o diretório de trabalho e a linha de comando para cada processo na árvore que leva a initialize

    
por 16.09.2013 / 06:14
1

Adicionar "set -x" como a linha após #! / bin / bash em todos os scripts bash relevantes pode ajudar.

Você também pode tentar "strace", pois ele mostrará as chamadas do sistema, como arquivos abertos e stderr / stdout.

    
por 15.09.2013 / 17:42
1

Verifique nos arquivos de inicialização do bash:

grep rvm ~/.bashrc ~/.profile ~/.bash_profile ~/.bash_login \ 
  /etc/bash.bashrc /etc/profile

Alguns dos arquivos sob o diretório $HOME podem não existir, o que fornecerá uma mensagem de erro sobre esse arquivo, mas você pode ignorá-lo com segurança.

    
por 15.09.2013 / 17:46