如何调试鱼脚本?

how to debug fish script?

你可以debug a bash script这样:

bash -x script [arg1 ...]`

问题

fish 等价物是什么?

鱼使用类似的标志系统:

fish -d 3 script.fish

其中 d is the debug flag followed by the verbosity level:

-d or --debug-level=DEBUG_LEVEL specify the verbosity level of fish. A higher number means higher verbosity. The default level is 1.

自从 https://github.com/fish-shell/fish-shell/issues/3427 合并后现在

fish_trace=on script.fish

fish_trace 只是一个变量,因此您可以在全局范围内设置它,也可以在函数和脚本中对其进行局部范围设置

function im-still-debugging
   set -l fish_trace on
   ... etc
end

并使用

将其关闭
set --erase fish_trace

从 fish 3.2 开始,fish 会忽略您设置的实际值,它只关心它是否已设置。