我有一个函数
fz(){file=$(find | fzf) && echo $file && read order && $("$order" "$file")}
在我的.zshrz
。它允许我在与我调用它的位置相关的子目录中的任何位置查找文件,然后将我的输入指定的命令应用到该文件。
只是存在一个小问题:虽然该函数按预期工作(如果$order
不是同一.zshrc
文件中指定的别名),但如果我使用任何别名,它会发出“找不到命令”的信息。
有没有办法在 zsh 函数中使用存储为变量的别名?
答案1
您需要使用eval
而不是$( … )
.这有效:
fz() {
file=$( find | fzf )
echo $file
read order
eval "$order $file"
}