【发布时间】:2021-06-16 11:03:40
【问题描述】:
假设我有一个脚本:
$ cat script.sh
#!/usr/bin/env zsh
myfunc() {
echo Hello
}
uptime
myfunc
我使用zsh -x $PWD/script.sh 运行它,我得到以下输出:
$ zsh -x $PWD/script.sh
+/Users/username/.zshenv:8> [[ 2 -eq 1 ]]
+/Users/username/so/script.sh:5> uptime
20:12 up 2 days, 1:04, 7 users, load averages: 4.09 3.65 3.42
+/Users/username/so/script.sh:6> myfunc
+myfunc:1> echo Hello
Hello
我宁愿不打印脚本的完整路径,而只使用基本名称,类似于函数名称的显示方式。期望的输出:
$ zsh -x $PWD/script.sh
+.zshenv:8> [[ 2 -eq 1 ]]
+script.sh:5> uptime
20:12 up 2 days, 1:04, 7 users, load averages: 4.09 3.65 3.42
+script.sh:6> myfunc
+myfunc:1> echo Hello
Hello
我知道我可以通过执行例如zsh -x myscript 并没有提供完整路径,但是当它们位于 $PATH 时,许多脚本都是通过它们的完整路径运行的。我经常通过zsh -x =scriptname 调试脚本,其中= 修饰符会导致扩展完整路径。
我是否可以传递任何set 选项、环境变量或其他标志,使zsh -x 仅显示脚本的基本名称?或者任何其他自定义zsh -x 输出的方法都会非常有用。
【问题讨论】:
标签: shell debugging zsh prompt oh-my-zsh