A while back, someone asked me if I knew of a way to launch a terminal session from the Gnome panel, execute a command, and keep the terminal open. The example that I will use is launching the nmap help feature. Surely there are multiple ways to do this. Of course you could always put the ‘&’ character after your command, but what if you wish to launch a command followed by a flag or by its own argument, such as with “nmap –help“? Try executing the following command from your panel or menu and see if it works; it does NOT work for me.
xterm -e nmap --help &
I’ve created a very simple script called helperScript.sh. Download it and save it to your home directory, or some other location of your choosing; rename it so that you loose the “.txt” file extension and then make the file executable (chmod 755 helperScript.sh). In this example, I will assume that you have saved the file to your home directory. Like I said… the script is pretty simple:
#! /bin/bash $@ /bin/bash
This script should be called from your panel/menu launcher using a command structure that will launch your terminal emulator, then call on this shell script, and then provide an argument that is taken in by this script (“$1” or $@); this argument tells the script which command to run (for instance: nmap –help).
SYNTAX: [command] [path/to/helperScript.sh] [argument]
When launching the script from your panel or menu, please note that:
– The word “USER” should be changed to your own username
– Change “nmap –help” to whatever is specific to your needs
– Make sure that helperScript.sh is executable (chmod 755 helperScript.sh)
The command you should use in your panel/menu launcher is as follows.
Launch with gnome-terminal:
gnome-terminal -x /home/USER/helperScript.sh nmap --help
Launch with xterm:
xterm -e /home/USER/helperScript.sh nmap --help
Launch with Terminator:
terminator -x /home/USER/helperScript.sh nmap --help
Note: [-x] and [-e] are the flags for “execute”, depending on which terminal you are using. For some reason, “terminator -x” will launch some things properly using Terminator, but not others; I’m not sure why at this time.
At the bottom of the script, the reference to /bin/bash tells the terminal to keep a bash shell open and running.
Credit is due to 13u11fr09 for coming up with the basic concept for this script; read his/her thread at http://ubuntuforums.org/archive/index.php/t-296628.html.