“没有这样的文件或目录:~/.oh-my-zsh/oh-my-zsh.sh”即使文件存在

Asy*_*sha 2 terminal zsh oh-my-zsh iterm2 macos

我试图将我的终端设置(iTerm2、zsh、oh-my-zsh、omz 主题)从旧的 MacBook 转移到新的。

.zshrc真实文件在两台笔记本电脑之间共享的 Dropbox 中,并且在每台笔记本电脑中都有一个~/.zshrc指向 Dropbox的符号链接。

通过这种设置,我在新笔记本电脑中遇到了这个错误:

someuser@Someusers-MacBook-Pro ~ % source ~/.zshrc
/Users/someuser/.zshrc:source:78: no such file or directory: ~/.oh-my-zsh/oh-my-zsh.sh
/Users/someuser/.zshrc:source:112: no such file or directory: /Users/someuser/.rcsource
someuser@Someusers-MacBook-Pro ~ % ls  ~/.oh-my-zsh/oh-my-zsh.sh
/Users/someuser/.oh-my-zsh/oh-my-zsh.sh
someuser@Someusers-MacBook-Pro ~ % cat ~/.zshrc | grep oh-my-zsh
# Path to your oh-my-zsh installation.
export ZSH="~/.oh-my-zsh"
# load a random theme each time oh-my-zsh is loaded, in which case,
source $ZSH/oh-my-zsh.sh
Run Code Online (Sandbox Code Playgroud)

如您所见,输出没有任何意义。~/.oh-my-zsh/oh-my-zsh.sh当我ls在该路径上执行时,它抱怨无法找到,这表明它存在。

Gor*_*son 5

~是您的主目录的 shell 简写,而不是实际有效路径的一部分。在某些情况下,shell 会扩展~到实际路径中,但如果是在引号中则不会。只需替换这个:

export ZSH="~/.oh-my-zsh"    # Doesn't work because ~ is quoted
Run Code Online (Sandbox Code Playgroud)

要么是这样:

export ZSH=~/.oh-my-zsh    # No quotes, so ~ expands to home directory path
Run Code Online (Sandbox Code Playgroud)

或这个:

export ZSH="$HOME/.oh-my-zsh"    # Parameters do expand in double-quotes
Run Code Online (Sandbox Code Playgroud)