我经常并行运行需要很长时间才能完成的命令,有时我无法跟踪正在运行的内容,因为它们在屏幕上输出的信息类型基本相同。
您知道有什么方法可以找出在哪个终端中运行的命令吗?
des*_*ert 12
取自Bash - 通过运行第二个命令更新终端标题·U&L并略有更改:
trap 'echo -ne "\033]2;$(history 1 | sed "s/^[0-9 ]* \+//")\007"' DEBUG
Run Code Online (Sandbox Code Playgroud)
这 (ab) 使用DEBUG信号作为触发器,通过XTerm Control Sequence 使用历史记录中的最后一个条目(即您执行的最后一个命令)更新标题。将该行添加到您的,~/.bashrc以在每个新终端窗口中启用该功能。
要在标题旁边打印其他命令输出,请说当前目录,pwd后跟“:”和当前正在运行的命令,我建议使用printf如下:
trap 'echo -ne "\033]2;$(printf "%s: %s" "$(pwd)" "$(history 1 | sed "s/^[0-9 ]* \+//")")\007"' DEBUG
Run Code Online (Sandbox Code Playgroud)
一些终端模拟器允许您指定动态标题,甚至为您提供命令名称作为选项,这样您甚至不需要摆弄 - 我在yakuake的配置文件设置中搜索并找到了它。