Avoid gnome-terminal close after script execution?

As I understand you want gnome-terminal to open, have it execute some commands, and then drop to the prompt so you can enter some more commands. Gnome-terminal is not designed for this use case, but there are workarounds:


Let gnome-terminal run bash and tell bash to run your commands and then start a new bash

$ gnome-terminal -- bash -c "echo foo; echo bar; exec bash"

or if the commands are in a script

$ gnome-terminal -- bash -c "./scripttorun; exec bash"

The first bash will terminate once all the commands are done. But the last command is a new bash which will then just keep running. And since something is still running gnome-terminal will not close.


Let gnome-terminal run bash with a prepared rcfile which runs your commands

Prepare somercfile:

source ~/.bashrc
echo foo
echo bar

Then run:

$ gnome-terminal -- bash --rcfile somercfile

bash will stay open after running somercfile.

i must admit i do not understand completely why --rcfile has this behaviour but it does.


Let gnome-terminal run a script which runs your commands and then drops to bash

Prepare scripttobash:

#!/bin/sh
echo foo
echo bar
exec bash

Set this file as executable.

Then run:

$ gnome-terminal -- ./scripttobash

for completeness

if you just want to be able read the output of the command and need no interactivity

  1. go to preferences (hamburger button -> preferences)
  2. go to profiles (standard or create a new one)
  3. go to command tab
  4. when command exits -> hold the terminal open

i recommend to create a new profile for just for this use case.

use the profile like this:

gnome-terminal --profile=holdopen -- ./scripttorun

Every method has it’s quirks. You must choose, but choose wisely.

I like the first solution. it does not need extra files or profiles. and the command says what it does: run commands then run bash again.

All that said, since you used ssh in your example, you might want to take a look at pssh (parallel ssh). here an article: https://www.cyberciti.biz/cloud-computing/how-to-use-pssh-parallel-ssh-program-on-linux-unix/

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)