При первом открытии терминала Mac я получаю сообщение об ошибке -

-bash: Applications: command not found

Как ни странно (а может и не так), когда я открываю другую вкладку, я иногда получаю другую ошибку -

-bash: README.md: command not found

Я только что заметил, что этим утром ... я сделал две вещи, которые, по моему мнению, привели к этому, но я не уверен, что я прав, и не знаю, как правильно решить эту проблему. Моя ОС El Capitan 10.11.13.

Во-первых, вчера вечером я использовал Homebrew для установки PostGIS 2.2 - моя версия Postgres - 9.5.1.

Во-вторых, я сделал запрос на извлечение Github для одного из моих проектов (я не уверен, как запрос на извлечение может нарушить мой профиль bash, но стандартный формат readme для Github - README.md, поэтому я подумал, что лучше упомянуть об этом здесь),

Мой профиль bash кажется мне чистым -

[[ -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

Может кто-нибудь пролить свет на то, что произошло, и как я могу исправить это? Я довольно новичок в использовании терминала, поэтому я не совсем уверен, как это интерпретировать.

1 ответ1

0

Ну, я нашел решение этой проблемы.

Мой bash_profile содержал звездочку ниже последней строки, которую я не упомянул, когда задавал вопрос - мои извинения, я даже не заметил этого там:

[[ -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
*

Как мне объяснил mklement0 на переполнение стека:

Что оказалось проблемой ОП:

Пауза * в отдельной строке в их профиле расширяется до отсортированного в алфавитном порядке списка имен файлов и папок в текущем текущем каталоге (процесс, называемый расширением пути или глобализацией).

Мало того, что * как собственная команда (или начало команды) бесполезно, это может привести к нежелательному выполнению команды (см. Ниже). Затем Bash попытался выполнить результат этого расширения как команду для выполнения, причем первое слово (разделенный пробелами токен) интерпретировалось как имя команды.

Это не удалось, потому что это первое слово не было именем команды. Однако, если первым словом окажется правильное имя команды, например, file, эта команда будет выполнена. (Если текущий каталог не находится в $ PATH, не имеет значения, является ли первое совпадающее имя файла исполняемым файлом или нет - все, что имеет значение, это то, соответствует ли имя существующему имени команды). При запуске домашний каталог пользователя. был рабочий реж .; напротив, при открытии другой вкладки будет использоваться текущая рабочая директория, какой бы она ни была.

Это объясняет различия в симптомах, так как смещение в разных каталогах обычно приводит к появлению разных списков имен, соответствующее первое слово, которое Bash попытается выполнить.

https://stackoverflow.com/questions/35927558/mac-terminal-error-bash-command-not-found-el-capitan-10-11-13/35927780?noredirect=1#comment59515600_35927780

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .