clear;
我经常发现自己在希望产生大量输出的命令前面放置了。
我经常错过的是在顶部看到执行的命令行的可能性。我能对此施展什么魔法吗?
例子:
如果我输入,clear;some_program with params
我希望有一个清除的终端显示类似以下内容:
Fri 12 Apr 2024 12:32:00 PM CEST
> clear;some_program with params
// program output //
第一部分很简单,只需定义一个别名alias clear="clear;date"
有没有打印整个命令行的解决方案?(无论是否有透明的部分,或者是否有一些换行)
set
您可以尝试通过命令启用调试模式。这是执行相同操作的演示。第一个
clear
和date
命令是您的解决方案的一部分。之后,set -x
将打印正在执行的命令作为调试的一部分。替换echo "Hello"
为您想要的命令或脚本。最后,set +x
将禁用调试模式。注意:如果您使用 进行一些自定义
zsh
,则在调试模式期间您将获得大量不必要的输出。例如,我使用 Oh My Zsh,并且在调试模式下获得了所有 oh my zsh 命令。如果您没有任何自定义,该解决方案应该适合您。如果您有某种自定义,您可以在
zsh -f
. 它将zsh
在没有任何配置的情况下加载(.zshrc .zshenv 等)。如果您的脚本或命令不依赖于这些文件,则可以进行此修复。我能够使用 zsh 的历史变量来实现它。该变量
$history[$HISTCMD]
包含最后执行的命令行,在本例中始终是刚刚执行的命令行。因此定义这样的别名:
alias clear="clear;date;echo \> \"\$history[\$HISTCMD]\""
会导致请求的输出。