Suponho que você esteja executando esses comandos em um script.
Tenha em mente que $$
é o pid do processo bash em execução . Se você estiver executando um script, o processo bash desse script é filho do seu shell interativo atual. Se você matar $$
no script, estará eliminando o script, não o shell pai.
O Bash armazena o pid pai na variável $PPID
, então você quer
#!/bin/bash
gnome-terminal & # launch a new terminal
kill $PPID # kill this script's parent
Estou assumindo que o shell pai é o gerado a partir do terminal e que você não alterou o comportamento padrão do terminal de fechar quando o shell é encerrado.
Como um aparte, em vez de
echo -n "Type new terminal name > " # displays messagebox
read text # load messagebox input
faça
read -p "Type new terminal name > " text