我想要这样的东西:
# source:
a() b mp3 m4a "$@"
b() eval "${1}-to-${2} $@:q"
alias mp3-to-m4a='ffmpeg ...'
#
$ traceall a a.mp3 a.m4a
# should return:
Functions:
a
b
Aliases:
mp3-to-m4a
commands:
ffmpeg
答案1
trap
您可以用伪信号来查看DEBUG
。不过,这只触发命令和函数,并且仅在别名扩展之后触发。您需要阅读 zsh 手册中的详细信息,因为它运行一个命令或函数,为其提供有关将要执行的内容的信息,而不是直接记录信息;您可以假设使用它来实现完整的调试器。
答案2
全局打开 xtrace:
> set -x; a a.mp3 a.m4 ; set +x
或者为函数打开 xtrace,然后执行它:
> typeset -tf a # turns on xtrace for function a and below
> a a.mp3 a.m4
> typeset -Tf a # turns on xtrace for function a only
> a a.mp3 a.m4