在fish中定义函数,与watch一起使用

use*_*532 2 watch fish function

我想定义一个函数,并每 n 秒调用一次该函数。举个例子:

function h
    echo hello
end
Run Code Online (Sandbox Code Playgroud)

调用h工作:

david@f5 ~> h
hello
Run Code Online (Sandbox Code Playgroud)

但是当使用手表时,它不会...

watch -n 60 "h"
Run Code Online (Sandbox Code Playgroud)

......我得到:

Every 60.0s: h                                      f5: Wed Oct 10 21:04:15 2018

sh: 1: h: not found
Run Code Online (Sandbox Code Playgroud)

如何watch使用我刚刚定义的函数在鱼中运行?

Jef*_*ler 5

另一种方法是保存函数,然后要求watch调用鱼:

bash$ fish
fish$ function h
    echo hello
end
fish$ funcsave h
fish-or-bash$ watch -n 60 "fish -c h"
Run Code Online (Sandbox Code Playgroud)

funcsave将命名函数定义保存到 path 中的文件中~/.config/fish/functions/,因此~/.config/fish/function/h.fish在上述情况下。