I created a bash script that opens several gnome-terminals, connect to classroom computers via ssh and run a script.
How can I avoid that the gnome-terminal closes after the script is finished? Note that I also want to be able to enter further commands in the terminal.
Here is an example of my code:
gnome-terminal -e "ssh root@<ip> cd /tmp && ls"
In gnome-terminal , go to preferences, the "Title and command" tab. Then click the drop-down list "When command finishes", choose "Keep terminal open".
To configure GNOME terminal, go to Edit > Preferences. From here, you can configure some global and profile specific settings of GNOME Terminal.
To terminate the script in case of an error, we can use the “-e” option. and the script exits on an error, it closes the terminal window.
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:
$ gnome-terminal -e "bash -c \"echo foo; echo bar; exec bash\""
The exec bash
at the end is necessary because bash -c
will terminate once the commands are done. exec
causes the running process to be replaced by the new process, otherwise you will have two bash processes running.
rcfile
which runs your commandsPrepare somercfile
:
source ~/.bashrc echo foo echo bar
Then run:
$ gnome-terminal -e "bash --rcfile somercfile"
Prepare scripttobash
:
#!/bin/sh echo foo echo bar exec bash
Set this file as executable.
Then run:
$ gnome-terminal -e "./scripttobash"
Alternatively you can make a genericscripttobash
:
#!/bin/sh for command in "$@"; do $command done exec bash
Then run:
$ gnome-terminal -e "./genericscripttobash \"echo foo\" \"echo bar\""
Every method has it's quirks. You must choose, but choose wisely. I like the first solution for its verbosity and the straightforwardness.
All that said, this might be of good use for you: http://www.linux.com/archive/feature/151340
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With