找不到ZSH别名

时间:2015-10-25 11:45:52

标签: shell zsh zshrc oh-my-zsh

当我打开~/.zshrc文件并添加alias homestead=“cd ~/Homestead”时,我希望能够输入homestead并转到Homestead文件夹。

相反,我收到以下错误:

zsh: command not found: “cd

即使我使用单引号,即alias homestead='cd ~/Homestead'并运行source ~/.zshrc,我也会遇到同样的错误。

更新:此外,当我运行which homestead时,我得到homestead: aliased to "cd

我该如何解决这个问题?

5 个答案:

答案 0 :(得分:2)

答案是在Sublime Text中打开~/.zshrc而不是TextEdit,并检查"是否在八进制转储中显示为042

答案 1 :(得分:1)

您无需在zsh中定义此别名。将以下内容添加到您的.zshrc

setopt autocd
cdpath+=(~)

第一个允许您将目录名称视为命令,它将当前shell的工作目录隐式设置为指定目录。第二个指定如果当前目录没有名称与cd一起使用的目录(或者自身设置为autocd),则尝试在{{{ 1}}参数。

使用这两个,只需键入cdpath将首先尝试运行名为Homestead的命令;如果失败,它会尝试Homesteadcd,而 失败,最终会在./Homestead cd成功。

答案 2 :(得分:0)

也许您的语言环境设置会自动将双引号“修改为本地化的双引号”。由于这不会被识别为shell中的有效引号,因此简单的空格会破坏字符串。所以实际的别名是“cd

至于为什么alias homestead='cd ~/Homestead'不起作用,您似乎更改了~/.zshrc中的别名。从which homestead结果可以看出,alias homestead='cd ~/Homestead'并不真正起作用。也许在alias homestead=“cd ~/Homestead”之后隐藏了另一行.zshrc

答案 3 :(得分:0)

双引号必须是ASCII,而不是ASCII范围之外的Unicode。在编辑器中加载文件,禁用任何自动修改单引号和双引号。然后用ASCII引号"替换有趣的引号(代码十进制34,十六进制22,八进制042)。或者在提示符下键入命令,然后剪切&将其粘贴到您的编辑器中。如果所有其他方法都失败,请在.zshrc的末尾添加别名

printf 'alias homestead="cd ~/homestead"' >> ~/.zshrc

使用八进制转储验证结果,

od -bc .zshrc

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

答案 4 :(得分:0)

对我来说,修复问题的原因是列表中第一个别名中有问号的错误。

只需切换到Mac OS Catalina,将~/.bashrc切换到~/.zshrc,我想zsh不支持问号。

也许它将像我一样帮助来自Google搜索的人。