我想定义一个函数,并每隔 n 秒调用一次该函数。举个例子:
function h
echo hello
end
调用h
工作:
david@f5 ~> h
hello
但是在使用watch时,它不会...
watch -n 60 "h"
...我得到:
Every 60.0s: h f5: Wed Oct 10 21:04:15 2018
sh: 1: h: not found
如何watch
使用我刚刚定义的功能在鱼中运行?
另一种方法是保存函数,然后要求
watch
调用fish:funcsave
将命名函数定义保存到 path 中的文件中~/.config/fish/functions/
,因此~/.config/fish/function/h.fish
在上述情况下。没有简单的方法。默认情况下
watch
用于/bin/sh
运行命令,但需要-x
:但是,没有什么不能使用,
fish
因为h
函数没有导出到环境:在
bash
您可以将函数导出到环境export -f
并在内部使用它,watch
如下所示:如果您使用
fish
,您可以创建一个包装脚本并使用以下命令调用它watch
:还要注意
fish
has.
,source
因此您可以在另一个文件中定义函数并能够在其他脚本中重新使用它,例如:我做到了!它可以完成这项工作,但我仍然希望
fish
有一些原生的东西。我选择了这个名字blotch
,这样它就不会干扰 bash 的watch
.并保存该功能以备后用。
另一种相当简单的方法是......