LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Software (http://www.linuxquestions.org/questions/linux-software-2/)
-   -   xterm - howto lauch an xterm into a specific directory (http://www.linuxquestions.org/questions/linux-software-2/xterm-howto-lauch-an-xterm-into-a-specific-directory-226013/)

jobano 09-03-2004 01:13 AM

xterm - howto lauch an xterm into a specific directory
 
hello,

I would like to launch an xterm from my file manager, I'm able to get the directory but not to launch an xterm prompting at this directory... you know ?
should not be so geeky, I will be shamy

thanks in advance


PS: in the same kind of idea, how can I launch something as a specific user into a root owned script ?

/bin/bash 09-03-2004 05:41 AM

If you are using Konqueror to browse with then it's easy, just "right-click" on the folder and select "Actions" and then select "Open terminal here".

/bin/bash 09-03-2004 05:44 AM

As for running as a specific user, you should use the su command to change user id.

jobano 09-03-2004 06:45 PM

thanks for your help, but it's not so obvious
I perhaps was not clear enough but I need to script that !

to run an xterm at a specific directory, I tried (as script run by clicking on a directory into the file manager)
Code:

dir=$@
cd $dir
xterm &        <---- this xterm will always be in my home directory

or
Code:

dir=$@
xterm -e "cd $dir"    <---- this xterm flash and never wait for me


and to run a program hold by a specific using a script launched by root...
Code:

echo user: $USER
su jobano
echo user: $USER      <------- obviously this command wait the sub-shell logout ; please help


I really need someone's help on that because finding documentation on so precise points is a bit complex
Yours sincerely.

idaho 09-03-2004 07:15 PM

When you open an xterm window, you are effectively logging in. Therefore an xterm session will always start at your home directory. You can use expect:
(http://expect.nist.gov/)
to pass commands to the xterm session after you start it. Changing to your desired directory after you have launched xterm would be covered by this.

To run a root owned script as a non root user you can use sudo:
http://www.courtesan.com/sudo/

jobano 09-03-2004 08:54 PM

Quote:

Originally posted by idaho
When you open an xterm window, you are effectively logging in. Therefore an xterm session will always start at your home directory. You can use expect



I have found another tip, not perfect but does the trick for me
Code:

#!/bin/bash
clic=$@
if [ -d $clic ]; then
        dir=$clic
else
        dir="`dirname \"$clic\"`/"
fi
xterm -e "cd $dir && sudo su $USER" &

my shell is a sub-shell of another but I don't care (the parent kill itself instantly when I come back on it)


Quote:

Originally posted by idaho
To run a root owned script as a non root user you can use sudo:
http://www.courtesan.com/sudo/
It was the inverse I wanted, but I've found !
Code:

echo user: $USER
su -c 'echo user: $USER' jobano

That does the trick,
thanks, you were quick, that's nice !

jayanth 02-14-2008 10:31 PM

Getting the Prompt After 'xterm -e <command>'
 
Hi,

I'm trying to do something similar, that is, running a command automatically after launching an xterm window using the 'e' switch. Something like:

xterm -e "ls"

The problem is that this causes the xterm window to run the command and get destroyed, that is, the command prompt is not available. But when I run the command

xterm -e "ls && sudo su"

the window stays open and xterm's command prompt is available for further use. But this is not what I want.

How do I get the window to stay open and also get the command prompt available (the 'hold' switch does the former, but not the latter)?

Thanks,

Jayanth

jayanth 02-18-2008 05:04 AM

Anyone...?

virtual_void 02-26-2008 03:18 PM

This is how you launch xterm into directory <dir>

# xterm -e 'cd <dir> && /bin/bash'

this is how you would do it with konsole
# konsole --workdir <dir>


All times are GMT -5. The time now is 12:13 PM.