Você precisa adicionar o "e" comercial (& amp;) ao final da primeira linha do script ou usar nohup
.
Esse e comercial à direita direciona o shell para executar o comando em segundo plano, ou seja, é bifurcado e executado em um sub-shell separado, como um trabalho, de forma assíncrona. O shell retornará imediatamente o status de retorno de 0 para true e continuará como normal, processando comandos adicionais em um script ou retornando o foco do cursor de volta ao usuário em um terminal Linux.
nohup
captura o sinal de desligamento enquanto o "e" comercial não, isso significa que ao executar um comando usando & amp; e saindo do shell depois, o shell terminará o subcomando com o sinal hangup kill -SIGHUP PID
, enquanto nohup
captura o sinal e o ignora.
Então, agora seu script ficaria assim:
firefox -new-tab -url google.com -new-tab -url yahoo.com &
clear
cd /opt/lampp
sudo ./lampp start
cat somefile
Como o OP disse a última versão (usada nohup):
nohup firefox -new-tab -url google.com -new-tab -url yahoo.com & 2>/dev/null
clear
cd /opt/lampp
sudo ./lampp start
cat somefile