当我打开~/.zshrc
文件并添加alias homestead=“cd ~/Homestead”
时,我希望能够输入homestead
并转到Homestead文件夹。
相反,我收到以下错误:
zsh: command not found: “cd
即使我使用单引号,即alias homestead='cd ~/Homestead'
并运行source ~/.zshrc
,我也会遇到同样的错误。
更新:此外,当我运行which homestead
时,我得到homestead: aliased to "cd
我该如何解决这个问题?
答案 0 :(得分:2)
答案是在Sublime Text中打开~/.zshrc
而不是TextEdit,并检查"
是否在八进制转储中显示为042
。
答案 1 :(得分:1)
您无需在zsh
中定义此别名。将以下内容添加到您的.zshrc
:
setopt autocd
cdpath+=(~)
第一个允许您将目录名称视为命令,它将当前shell的工作目录隐式设置为指定目录。第二个指定如果当前目录没有名称与cd
一起使用的目录(或者自身设置为autocd
),则尝试在{{{ 1}}参数。
使用这两个,只需键入cdpath
将首先尝试运行名为Homestead
的命令;如果失败,它会尝试Homestead
到cd
,而 失败,最终会在./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搜索的人。