6

I'm using Ubuntu 16.04

I want to open multiple terminal tabs, run commands and set title. I can open multiple tabs with this command:

gnome-terminal --tab -e "command1" --tab -e "command2"

but cannot use --title option as it is not available in this version.

I know mate-terminal can do this, but I want to use gnome-terminal.

I've applied solution posted here and it worked but when i run

gnome-terminal --tab -e "bash -c 'set-title 99;ping 192.168.7.99'"

It shows:

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

I also applied the solution suggested here on Unix & Linux SE

I've also read this post setting-terminal-tab-titles but the accepted answer did not solve my issue in 16.04 os or gnome-terminal version 3.18.3 and other solution provides to use other terminal xterm and I want to use gnome-terminal.

2
  • 3
    Possible duplicate of Setting Terminal tab titles
    – John N
    Commented Dec 13, 2016 at 8:16
  • Please note, that the core of the problem was that OP wanted to use a function defined in ~/.bashrc within custom script. Thus, the question is only tangentially related to the link John N provided. IMHO this is not a strict duplicate Commented Dec 29, 2016 at 5:27

1 Answer 1

9

If you want to use a function stored in ~/.bashrc then source that file in your command:

gnome-terminal --tab -e "bash -c 'source ~/.bashrc;set-title 99;ping 192.168.7.99'"

You've mentioned in the comments that you plan to use this in a shell script and with multiple gnome-terminal tabs. As a proof of concept, you can use the following script as example:

#!/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'" \

Instead of bash function, this uses printf and escape sequences directly. Please be mindful of the backslashes.

15
  • It opens terminal, run command but not set title.
    – d a i s y
    Commented Dec 14, 2016 at 7:54
  • 2
    @Lucy try this function instead : setTitle() { echo -e "\033]0;$@\007" } Commented Dec 14, 2016 at 7:56
  • means to put this in .bashrc file & remove that old function?
    – d a i s y
    Commented Dec 14, 2016 at 7:58
  • @Lucy yes. Or you can put both there, just use different names. I just tested it with my own gnome-terminal, works. imgur.com/a/Dto82 Commented Dec 14, 2016 at 7:59
  • 1
    @Lucy perfect ! Well, congrats , we've solved your question. Also final note: you don't have to use it as function, you probably could simply use echo -e "\033]0;TITLE TEXT\007" in your `gnome-terminal command directly. I will make a small addition to my answer, please see it later. Thx Commented Dec 14, 2016 at 8:15

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .