许多人喜欢将他们的bash配置文件移动到Dropbox文件夹中,这样他们就可以在多台机器上使用相同的配置文件(通常,对于那些拥有他们喜欢的自定义和特定配置文件的人来说)。我想对我的zsh配置文件和Prezto框架做同样的事情。
我在/Users/me/Dropbox/Computer Preferences/zsh/
中创建了一个Dropbox文件夹(我将其称为DBFolder,在此),我想将我的Prezto配置存储在其中。
这是我所追求的过程:
- 我下载了Prezto,并将下载中的所有文件移动到DBFolder。
- 我为
{DBFolder}/.zprezto/runcoms/
中的所有z*文件创建了一个符号链接,由此产生的符号链接位于~/
中。 -
我将这些行添加到我的zshenv文件中:
export ZDOTDIR="$HOME/Dropbox/Computer Preferences/zsh" if [[ "$SHLVL" -eq 1 && -s "${ZDOTDIR:-$HOME}/.zprofile" ]]; then source "${ZDOTDIR:-$HOME}/.zprofile" path = /Users/me/bin fi
我现在能够启动我的zsh配置文件与Prezto配置。但是,现在我的问题是,我的初始登录无法加载路径:
/Users/me/.zshenv:22: permission denied: /Users/me/bin
$ whoami
#=> me
我的问题是-为什么我无法访问/Users/me/bin
,当我清楚地登录(通过$ whoami
),它是在我的主目录?
问题行
path = /Users/me/bin
有三个问题:
-
$path
在Zsh是一个数组;$PATH
是posix兼容标量。 -
=
被空格包围是语法错误;POSIX shell中的赋值不应该包含空格。 -
$PATH
应该扩展而不是覆盖。
更正:
PATH=$HOME/bin:$PATH
或
path=($HOME/bin $path)
后者要求关闭ksharrays
选项(默认为关闭)。