如何调试鱼脚本?

Édo*_*pez 4 debugging shell scripting fish

您可以像这样调试bash脚本:

bash -x script [arg1 ...]`
Run Code Online (Sandbox Code Playgroud)

什么是fish相同呢?

Chr*_*oll 9

由于https://github.com/fish-shell/fish-shell/issues/3427已合并,现在有

fish_trace=on script.fish
Run Code Online (Sandbox Code Playgroud)

fish_trace只是一个变量,因此您可以全局设置它或在函数和脚本内本地设置它

fish_trace=on script.fish
Run Code Online (Sandbox Code Playgroud)

并将其关闭

function im-still-debugging
   set -l fish_trace on
   ... etc
end
Run Code Online (Sandbox Code Playgroud)

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


Édo*_*pez 8

鱼使用类似的旗帜系统:

fish -d 3 script.fish
Run Code Online (Sandbox Code Playgroud)

d调试标志在哪里,后跟详细级别:

-d或--debug-level = DEBUG_LEVEL指定鱼的详细程度.数字越大意味着更高的冗长度.默认级别为1.