Mail Archives: cygwin/2002/10/20/11:12:16
Andrew,
At 06:58 2002-10-20, Andrew Ellerton wrote:
> >> @="c:\\cygwin\\bin\\bash.exe --login -c \"cd '%1' ; exec /bin/bash
> -rcfile ~/.bashrc\""
> >
> >can you think of any better way to start bash?
> >the above creates two bash.exe in memory:
> >one executing /etc/profile and the cd-command
> >and one showing the prompt.
>
>The first shell executes a single line of shell commands, namely to change
>directory and run another shell. The second shell runs as the "normal"
>interactive shell. Net effect - looks like the shell has started in a
>different directory. Admittedly a bit hacky, having two shells running for
>no good reason, but it does the job. I'm not sure if shells are very
>expensive in terms of memory. If not, then its a bit kludgey, but
>otherwise its ok.
There are not (ever) two shells running as a result of invoking this
command string. The second one overlays the first in the same process.
That's what the "exec" built-in of the shells does.
Note that the directory name expanded as "~" is $HOME. If $HOME is not set,
"~" expands to the empty string. The "~userName" syntax consults the
password file, so it still works even in the absence of a $HOME variable.
> >bash --login -c "command"
> >exits after executing the command.
> >is there any bash-internal command, that let's you show a prompt after
> >the command is executed? or any switch that forces bash to not exit?
>
>There's bound to be... anyone got any idea? I saw another posting to the
>list where the cd gets written to a file then the login script looks for
>the file and changes to that dir... that's an option.
Avail yourself of environment variables.
>Andrew
Randall Schulz
Mountain View, CA USA
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -