zsh 参数替换

zsh 参数替换

这一页有一个demo函数如下:

~inews> namedir () { $1=$PWD ;  : ~$1 }

但是当我在我的机器上尝试时,它会产生以下错误:

namedir: no such file or directory: test=/home/user

看起来该函数试图cd进入$1=$PWD.以防万一,我也尝试了相同的功能但未autocd启用。您对错误有任何想法吗?

答案1

我不知道这应该如何运作。赋值不采用$左侧的符号,因此$1=$PWD不会被识别为赋值,而只会扩展两个变量,然后尝试将其作为命令运行。如果您使用namedir testin /home/user,它将扩展为test=/home/user并给出该错误。

手动的提到可以使用 来设置命名目录hash -d name=/dir,所以像这样的东西应该可以工作:

namedir() { hash -d "$1=$PWD"; }

目录因为该介绍说“该文档是在 1995 年 11 月 30 日使用 texi2html 翻译器版本 1.44 生成的。”,所以我想知道它是否完全是最新的,以及命名目录在过去是否有不同的工作方式。 (即便如此,该页面显示“当您引用 ~inews... 形式的目录时”,但我也看不出这是如何工作的。)

相关内容