Shell 未找到ZSH别名

Shell 未找到ZSH别名,shell,zsh,zshrc,oh-my-zsh,Shell,Zsh,Zshrc,Oh My Zsh,当我打开我的~/.zshrc文件并添加alias homestead=“cd~/homestead”时,我希望能够键入homestead,并被带到homestead文件夹 相反,我得到了以下错误: zsh:未找到命令:“cd 即使使用单引号,即alias homestad='cd~/homestad'并运行source~/.zshrc时,也会出现相同的错误 更新:另外,当我运行which homestad时,我会得到homestad:别名为“cd 如何修复此问题?可能您的区域设置正在自动将您发布

当我打开我的
~/.zshrc
文件并添加
alias homestead=“cd~/homestead”
时,我希望能够键入
homestead
,并被带到homestead文件夹

相反,我得到了以下错误:

zsh:未找到命令:“cd

即使使用单引号,即
alias homestad='cd~/homestad'
并运行
source~/.zshrc
时,也会出现相同的错误

更新:另外,当我运行
which homestad
时,我会得到
homestad:别名为“cd


如何修复此问题?

可能您的区域设置正在自动将您发布的双引号“更正为本地化双引号”。由于这在shell中未被识别为有效引号,因此简单的空白将打断字符串。因此实际别名为
“cd


至于为什么
alias homestad='cd~/homestad'
不起作用,似乎您在
~/.zshrc
中更改了别名。从
哪个homestad
结果可以看出
alias homestad='cd~/homestad'
实际上不起作用。可能还有另一行
alias homestad='cd~/homestad'
隐藏在
.zshrc
之后。

双引号必须是ASCII,而不是ASCII范围之外的Unicode。在编辑器中加载文件,禁用单引号和双引号的任何自动篡改。然后用ASCII引号替换有趣的引号
(代码十进制34,十六进制22,八进制042)。或在提示下键入命令,然后将其剪切并粘贴到编辑器中。如果所有其他操作都失败,请使用

printf 'alias homestead="cd ~/homestead"' >> ~/.zshrc
用八进制转储验证结果

od -bc .zshrc

引号上方的数字应显示为
042

您根本不需要在
zsh
中定义此别名。将以下内容添加到
.zshrc
中:

setopt autocd
cdpath+=(~)
第一个命令允许您将目录名视为命令,隐式地将当前shell的工作目录设置为命名目录。第二个命令指定如果当前目录没有名称与
cd
一起使用的目录(或其本身与
autocd
set一起使用的目录),然后尝试在
cdpath
参数中命名的目录中查找它


有了这两个选项,只需键入
Homestead
将首先尝试运行名为
Homestead
的命令;如果失败,它将尝试
cd
/Homestead
,如果失败,将最终成功地
cd
~/Homestead

,答案是在下面的超文本中打开
~/.zshrc
反对文本编辑和检查
是否在八进制转储中显示为
042

只是说对我来说,修复的是列表中第一个带问号的别名中的错误

刚刚切换到MacOSCatalina和
~/.bashrc
~/.zshrc
,我想zsh不支持问号


也许它会帮助像我一样从谷歌搜索来到这里的人。

也许。我已经更新了我的问题,使之更加明确。我如何解决这个问题?@BarryBlade,你可以运行
哪个宅基地
来查看实际执行的内容。我已经将哪个宅基地的输出添加到我的主目录中question@BarryBlade,执行
别名的输出是什么homestead='cd~/homestead'
?@BarryBlade,那么它怎么还能显示
homestead:别名为“cd
source~./zshrc
是打字错误?你的意思是
source~/.zshrc
?是的。更正了编辑器越重-你会遇到越多的问题。Gedit rocks:)