zsh函数:替换错误
我在zsh函数:替换错误,zsh,zshrc,Zsh,Zshrc,我在.zshrc文件中编写了以下函数: myfunc() { folderpath=“${find.-type d-name myfolder}” package=“${basename$PWD}” ln-fs“$path”“$HOME”/links/“$package”/myfolder } 在source~/.zshrc并在命令行上运行myfunc后,我得到以下错误: myfunc:2: bad substitution 为什么?在zsh中将命令输出管道化到变量中的正确语法是: pack
.zshrc
文件中编写了以下函数:
myfunc()
{
folderpath=“${find.-type d-name myfolder}”
package=“${basename$PWD}”
ln-fs“$path”“$HOME”/links/“$package”/myfolder
}
在source~/.zshrc
并在命令行上运行myfunc
后,我得到以下错误:
myfunc:2: bad substitution
为什么?在zsh中将命令输出管道化到变量中的正确语法是:
package=$(basename $PWD)
在
zsh
中,您也可以简单地编写
package=$PWD:t
不需要命令替换。在该函数中,您实际在哪里使用
folderpath
?在zsh
中,我甚至不想费心于find
:而是使用**/myfolder/
。这是大多数shell中正确的语法。(ksh
是一个值得注意的例外,其中${…}
允许您在当前shell中运行(shell)命令,而不是子shell)。