oh-my-zsh 安装后也没有这样的文件或目录

oh-my-zsh 安装后也没有这样的文件或目录

我刚刚安装了 oh-my-zsh。事情进展顺利。然后我尝试注释掉export ZSH="~/.oh-my-zsh"

之后,当我取消注释该行时,我不断收到以下错误。但是,存在“oh-my-zsh.sh”

(base) abc@def-MacBook-Pro .oh-my-zsh % source $ZSH/oh-my-zsh.sh
source: no such file or directory: ~/.oh-my-zsh/oh-my-zsh.sh

(base) abc@def-MacBook-Pro .oh-my-zsh % ls -l ~/.oh-my-zsh/oh-my-zsh.sh
-rwxr--r--  1 abc  staff  5927 Feb 11  2022 /Users/abc/.oh-my-zsh/oh-my-zsh.sh

答案1

这是因为当您引用变量时(使用任何类型的引用机制,包括单引号、双引号、反斜杠等)~, 不会扩展到变量的值。$HOME$'...'

因此你可以改用以下命令:

export ZSH=~"/.oh-my-zsh"

或者

export ZSH=~/.oh-my-zsh

或者

export ZSH="$HOME/.oh-my-zsh"

请注意,通常,在以下任一~之后都不会展开=

$ echo x=~
x=~

除非magicequalsubst启用该选项:

$ set -o magicequalsubst
$ echo x=~
x=/home/me

但它们在任务中得到了扩展:

$ x=~
$ echo "$x"
/home/me

在相对较新的版本中zshexport和其他变量赋值内置函数被视为双内置函数 / 关键字,并且它们的参数被解析为赋值。

答案2

我现在仍然确定为什么会发生这种情况。不过,重新安装 oh-my-zsh 可以解决该问题。

相关内容