Erro no terminal do Mac -bash: comando não encontrado - El Capitan 10.11.13

0

Estou recebendo uma mensagem de erro quando abro meu terminal Mac pela primeira vez -

-bash: Applications: command not found

Estranhamente (ou talvez não tão estranhamente), quando eu abro outra guia, às vezes recebo um erro diferente -

-bash: README.md: command not found

Eu só notei que esta manhã ... há duas coisas que eu fiz na noite passada que eu sinto que podem ter levado a isso, mas eu não tenho certeza se estou correto, nem sei como corrigir isso adequadamente questão. Meu sistema operacional é El Capitan 10.11.13.

Primeiro, ontem à noite, eu usei o Homebrew para instalar o PostGIS 2.2 - minha versão do Postgres é 9.5.1.

Em segundo lugar, fiz uma solicitação de pull do Github para um dos meus projetos (não sei como um pull request poderia atrapalhar meu perfil bash, mas o formato readme padrão do Github é README.md, então achei melhor mencionar isso aqui).

Meu perfil bash parece limpo para mim -

[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function

export PATH=${PATH}:/usr/local/mysql/bin

Alguém pode lançar alguma luz sobre o que aconteceu e como posso resolver isso? Eu sou relativamente novo em usar o terminal, então não tenho certeza de como interpretar isso.

    
por skwidbreth 10.03.2016 / 20:42

1 resposta

0

Bem, descobri a solução para esse problema.

Meu bash_profile incluiu um asterisco abaixo da última linha, que eu deixei de incluir quando fiz a pergunta - minhas desculpas, nem percebi isso:

[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function

export PATH=${PATH}:/usr/local/mysql/bin  #ADDS MYSQL TO PATH EVERY TIME TERMINAL OPENS
*

Conforme explicado por mklement0 no Stack Overflow:

O que acabou sendo o problema do OP:

Um stray * em uma única linha em seu perfil é expandido para uma lista ordenada alfabeticamente dos nomes dos arquivos e pastas no diretório atual (um processo chamado expansão de nome de caminho ou globbing).

Não apenas um * como seu próprio comando (ou o início de um comando) não é útil, como pode resultar na execução indesejada de um comando (veja abaixo). Bash então tentou executar o resultado dessa expansão como um comando para executar, com a 1ª palavra (token separado por espaço em branco) interpretada como o nome do comando.

Isso falhou, porque essa primeira palavra não foi um nome de comando. No entanto, se a primeira palavra fosse um nome de comando válido, como arquivo, esse comando seria executado. (A menos que o diretório atual esteja no $ PATH, não importa se o primeiro nome de arquivo correspondente é um arquivo executável ou não - tudo o que importa é se o nome corresponde a um nome de comando existente). Na inicialização, o diretório inicial do usuário. era o diretor de trabalho; Por outro lado, abrir outra guia mais tarde usa o diretório de trabalho atual, o que quer que seja.

Isso explica os diferentes sintomas, já que globbing em diretórios diferentes resultará em listas de nomes diferentes, a respectiva primeira palavra que o Bash tentará executar.

link

    
por 10.03.2016 / 23:13