我使用 mac 已经有几年了,因为我目前正在 Rails 上学习 ruby,我觉得我应该更多地了解我正在使用的系统。我看了看~/.bash_profile,它看起来像这样
PATH="/Users/nikolajandersen/.apportable/SDK/bin:$PATH"
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM$
# Setting PATH for Python 3.3
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.3/bin:${PATH}"
export PATH
export PATH=/usr/local/bin:$PATH
export PATH=/usr/local/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
由于有两条相同的export PATH=/usr/local/bin:$PATH行,我试图删除其中的一行。结果,像 nano 和 ls 这样的命令不再起作用。我恢复了更改,但我不明白为什么它必须声明两次。
另一个问题是:为什么有时是 $PATH 有时只是 PATH 而不带 $?为什么-s "$HOME/.rvm/scripts/rvm"站在 [[ ]] 大括号中?有什么作用export PATH?
更新这是输出echo $PATH
/usr/local/bin:/usr/local/bin:/Library/Frameworks/Python.framework/Versions/3.3/bin:/Users/nikolajandersen/.rvm/gems/ruby-2.0.0-p353/bin:/Users/nikolajandersen/.rvm/gems/ruby-2.0.0-p353@global/bin:/Users/nikolajandersen/.rvm/rubies/ruby-2.0.0-p353/bin:/Users/nikolajandersen/.rvm/bin:/Users/nikolajandersen/.apportable/SDK/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/sm/bin:/opt/sm/pkg/active/bin:/opt/sm/pkg/active/sbin
Run Code Online (Sandbox Code Playgroud)
看起来你对换行符是正确的。我再次删除了该行并确保最后有一个空行。现在命令仍然有效。
在PATH之前=是一个变量名和组合讲述bash背后的东西存储=在变量。
的$PATH是变量PATH直到那时的值。
该组合PATH="some_path_to_stuff:$PATH" 扩展了 PATH 变量。在bash此是一个冒号(:)分隔的列表。
关于 的双重添加/usr/local/bin,我只能猜测第二个版本后面没有换行符(并且在文件末尾)。原则上,这应该为您提供一个以/usr/local/bin:/usr/local/bin:..... 你可以用
echo $PATH
Run Code Online (Sandbox Code Playgroud)
如果只有一次,/usr/local/bin请执行以下操作:
echo "" >> ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
并登录尝试$PATH再次打印。
| 归档时间: |
|
| 查看次数: |
17612 次 |
| 最近记录: |