我只是想做一个简单的任务,添加我的MySQL目录添加到 PATH 变量中,这样我就可以mysql
在 Mac OS X 10.6.6 (Snow Leopard) 上的终端中使用 、 等命令。在修改.profile
、.bash_profile
甚至创建.bashrc
并确保我的路径输入正确后,每次我尝试运行mysql
命令或点击
echo $PATH
给了我完全相同的结果:
/Users/GabbAHH/.rvm/gems/ruby-1.9.2-p136@rails3tutorial/bin:/Users/GabbAHH/.rvm/gems/ruby-1.9.2-p136@global/bin:/Users/GabbAHH/.rvm/rubies/ruby-1.9.2-p136/bin:/Users/GabbAHH/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin
如您所见,没有 MySQL。后来,我意识到这并不是真正的问题,因为我从/Users/GabbAHH/
用户目录中删除了所有这三个文件,但结果仍然相同!
现在,我的启动文件中的脚本如下所示:
export PATH=/usr/local/mysql/bin:$PATH
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
我是否做了什么事情导致终端绕过了这些启动文件?它只是从/etc/profile
文件夹中读取吗?
这会产生相同的结果吗?无论如何,我已将它们互换了。
另外,如何判断我正在使用交互式 shell 还是非交互式 shell,以及登录 shell 还是非登录 shell?我似乎能够创建文件夹等,而无需输入密码,尽管我记得之前sudo
安装时需要输入很多命令宝石用于 Ruby 等。此外,我确实需要在打开/关闭 MySQL 时输入密码。
答案1
只要输入:
echo HELLO, I AM HERE
在您的启动脚本中并正常登录。
如果你发现字符串是不是然后打印出来,是的,你绕过了那个脚本。
除此之外,您还应该告诉我们哪个脚本中bash
有一些...相当奇妙的...规则来决定运行哪些脚本 :-) 您可以从 部分获取详细信息INVOCATION
。man bash
我的特定版本大约有 50 行(并且有 150 列xterm
),因此我不会在这里发布它让您感到厌烦。
可以说,这很复杂。
例如,你可能会被这样一个事实所困扰bash
:第一的~/.bash_profile
、和的~/.bash_login
,~/.profile
存在且可读。它可能是一个非交互式 shell,其中规则不同。您可能正在使用--noprofile
或--norc
或--rcfile=whatever
或运行 shell --posix
。
尽管可能性不是无限的,但却非常烦人。
答案2
我的问题是存在 .bash_profile,所以我通过修改那里进行了更改。之前它所做的只是设置我的 JAVA_HOME 和 GROOVY_HOME...所以我将更改添加到该文件的末尾,现在一切都运行良好。
谢谢!