我在一个文件中定义了一个函数,该函数通过一行~/.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 的functions
cmd 和 do functions pparselogs
,我会得到:
pparselogs () {
while read data
do
jq -Rr '. as $line | try fromjson catch $line' < "$data"
done
}
请注意,jq
两个版本中的命令行有所不同——第一个版本是我想要的。
为什么会执行source
不更新功能?我怎样才能解决这个问题?