我第一次打开Mac终端时收到错误消息 -
-bash: Applications: command not found
奇怪(或者可能不那么奇怪),当我打开另一个标签时,我有时会得到一个不同的错误 -
-bash: README.md: command not found
或
-bash: [: missing `]'
我刚刚注意到今天早上......昨晚我做了两件事,我觉得可能导致了这一点,但我不确定我是否正确,也不知道如何正确解决这个问题。我的操作系统是El Capitan 10.11.13。
首先,昨晚,我使用Homebrew安装PostGIS 2.2 - 我的Postgres版本是9.5.1。
其次,我为我的一个项目提出了Github pull请求(我不确定拉取请求如何扰乱我的bash配置文件,但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
* #EDITED TO INCLUDE THIS ASTERISK, WHICH I NEGLECTED BEFORE
任何人都可以了解发生的事情以及如何解决这个问题?我使用终端相当新,所以我不太清楚如何解释这个。
答案 0 :(得分:5)
如何解决Bash启动问题:
构建于Jonathan Leffler's helpful comment:
script log.txt bash -lxv
-l
)shell(默认情况下OSX上创建的shell Terminal.app
的类型)并记录其所有启动活动。-v
会在阅读时显示未展开的来源行。-x
显示已执行的展开的单个命令,前缀为+
。exit
以终止该shell,这会将刚打印的所有内容保存到log.txt
。log.txt
以查看正在发生的事情。结果是OP的问题:
在他们的个人资料中的一行上的一个迷路*
扩展为当前目录中的文件和文件夹名称的字母顺序排序列表(称为路径名扩展或通配的过程)。
*
作为自己的命令(或命令的开头)不有用,它可能导致意外执行命令 (见下文)。Bash然后尝试执行此扩展的结果作为命令执行,第一个单词(以空格分隔的标记)解释为命令 name
file
,该命令将执行。$PATH
中,否则第一个匹配的文件名是否是可执行文件并不重要 - 重要的是名称是否与现有命令名称相匹配。) LI>
启动时,用户的主目录。是工作的目录。相比之下,打开另一个标签后,将使用当时正在运行的目录。无论发生什么情况。
答案 1 :(得分:0)
感谢大家的帮助,我能够解决这个问题。当我发布我的问题时,我从我的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 #ADDS MYSQL TO PATH EVERY TIME TERMINAL OPENS
*
我以前甚至没有注意到这件事,更不用说明白了它在做什么。我评论了它,现在一切都完美无缺。我不确定这个星号是否是bash配置文件的标准部分,但如果它一直存在,直到今天早上我安装了PostGIS并做了一个Github拉后它没有给我带来任何麻烦请求。我不确定为什么这些行为会引发这个问题,但是我试图尽可能地描述,以防其他人遇到这个问题。