难以重新加载已更改的 shell 功能

难以重新加载已更改的 shell 功能

我在一个文件中定义了一个函数,该函数通过一行~/.shell/functions.sh加载:.zshrc

source ~/.shell/functions.sh

但是,当我尝试通过 do 更改函数后更新该函数时source ~/.zshrc,它似乎没有加载该函数的新版本。

即我保存的缓冲区中的当前函数如下所示:

pparselogs () {
    while read data; do
        echo "$data" | jq -Rr '. as $line | try fromjson catch $line'
    done
}

但是,如果我确实使用 zsh 的functionscmd 和 do functions pparselogs,我会得到:

pparselogs () {
    while read data
    do
        jq -Rr '. as $line | try fromjson catch $line' < "$data"
    done
}

请注意,jq两个版本中的命令行有所不同——第一个版本是我想要的。

为什么会执行source不更新功能?我怎样才能解决这个问题?

相关内容