Experimente este script de teste.
t.sh
#!/bin/bash
sleep 5
echo bye bye
sleep 5
pid=$( ps -f | grep "bash" | grep -v grep )
kill -HUP $pid
OK, abra uma nova janela de terminal de linha de comando. A partir dessa janela, execute o script bash recém-criado (assuma que você o nomeou "t.sh" como acima).
bash t.sh
Você deve ver a janela de linha de comando desaparecer após 10 segundos, pois o shell script comete suicídio matando o processo bash que o lançou.
Acho que pode ter sido uma maneira mais fácil de fazer isso, mas não me lembro o que era.
De qualquer forma, da sua descrição, presumo que seja isso que você deseja realizar.
EDITAR:
Na verdade, não gosto da solução acima. Parece-me que o que você provavelmente realmente quer fazer é executar o script bash em segundo plano e usar "nohup" para que você possa fazer logoff.
O que acontece, então, é que o processo continuará a ser executado até que seja concluído e, em seguida, vai embora, essencialmente o que eu acho que você está pedindo.
Você pode fazer isso da seguinte forma:
t1.sh
#!/bin/bash
echo "I am doing my thing then leaving" > /tmp/t1.log
sleep 10
exit 0
Então, a partir da linha de comando:
nohup bash t1.sh &
depois vá em frente e faça logoff.
Volte 15 segundos depois, você deve ter um arquivo, "/tmp/t1.log", com sua saída.