使用 bash 脚本为 gnome-terminal 中的每个终端选项卡设置标题

d a*_*s y 6 command-line bash gnome-terminal 16.04

我正在使用 Ubuntu 16.04

我想打开多个终端选项卡,运行命令并设置标题。我可以使用此命令打开多个选项卡:

gnome-terminal --tab -e "command1" --tab -e "command2"
Run Code Online (Sandbox Code Playgroud)

但不能使用--title选项,因为它在此版本中不可用。

我知道mate-terminal可以做到这一点,但我想使用 gnome-terminal。

我已经应用了这里发布的解决方案并且它有效但是当我运行时

gnome-terminal --tab -e "bash -c 'set-title 99;ping 192.168.7.99'"
Run Code Online (Sandbox Code Playgroud)

表明:

bash: set-title: command not found
PING 192.168.7.99 (192.168.7.99) 56(84) bytes of data.
64 bytes from 192.168.7.99: icmp_seq=1 ttl=128 time=0.425 ms
64 bytes from 192.168.7.99: icmp_seq=2 ttl=128 time=0.353 ms
64 bytes from 192.168.7.99: icmp_seq=3 ttl=128 time=0.335 ms
Run Code Online (Sandbox Code Playgroud)

我还在Unix & Linux SE 上应用了这里建议的解决方案

我也读过这篇文章setting-terminal-tab-titles但接受的答案没有解决我在 16.04 os 或 gnome-terminal 版本 3.18.3 中的问题,其他解决方案提供使用其他终端xterm,我想使用 gnome-terminal .

Ser*_*nyy 9

如果要使用存储在其中的函数~/.bashrc,请在命令中使用该文件:

gnome-terminal --tab -e "bash -c 'source ~/.bashrc;set-title 99;ping 192.168.7.99'"
Run Code Online (Sandbox Code Playgroud)

您在评论中提到您计划在 shell 脚本和多个gnome-terminal选项卡中使用它。作为概念证明,您可以使用以下脚本作为示例:

#!/bin/bash
gnome-terminal --tab -e "bash -c 'printf \"\033]0;TEST1\007\"; sleep 7'" \
               --tab -e "bash -c 'printf \"\033]0;TEST2\007\"; ping -c 4 8.8.8.8'" \
Run Code Online (Sandbox Code Playgroud)

这不是 bash 函数,而是printf直接使用和转义序列。请注意反斜杠。

  • @Lucy 试试这个函数:`setTitle() { echo -e "\033]0;$@\007" } ` (2认同)