Mac 终端错误 -bash:未找到命令 - El Capitan 10.11.13

Mac 终端错误 -bash:未找到命令 - El Capitan 10.11.13

我第一次打开 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 配置文件,但 Github 的标准 readme 格式是 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

好吧,我确实找到了解决这个问题的方法。

我的 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
*

正如 Stack Overflow 上的 mklement0 向我解释的那样:

原来原始作者的问题如下:

他们的个人资料中一行上的一个杂散的 * 扩展为当时当前目录中文件和文件夹名称的按字母顺序排序的列表(该过程称为路径名扩展或通配)。

* 作为其自身的命令(或命令的开头)不仅没有用处,还可能导致不必要的命令执行(见下文)。然后,Bash 尝试将此扩展的结果作为要执行的命令执行,并将第一个单词(空格分隔的标记)解释为命令名称。

这失败了,因为第一个单词恰好不是命令名。但是,如果第一个单词恰好是有效的命令名(例如文件),则该命令将执行。(除非当前目录恰好在 $PATH 中,否则第一个匹配的文件名是否是可执行文件并不重要 - 重要的是名称是否与现有命令名匹配)。启动时,用户的主目录是工作目录;相反,稍后打开另一个选项卡将使用当时的工作目录,无论它是什么。

这解释了不同的症状,因为在不同的目录中进行通配符通常会导致不同的名称列表,Bash 将尝试执行其中的相应第一个字。

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

相关内容