Actually it looks like bash does get spawned off in either case.
Try a ps -e | grep pts/X to look at them.
It's just that the command line invocation is different.
If you look at /proc/PID/cmdline one shows up as "bash",
the other shows up as "bash fo.sh".

You can avoid spawning another bash by preceeding the command with "."
. ./fo.sh
This took me forever to figure out, man bash makes me sleepy.
Comes in handy if you want to setup some evironment vars:
. ./set_my_env_vars.sh
Otherwise the env vars don't stick.


>Ok, got it. But I thought that if you did not specify a program/shell 
>that /bin/sh (in Linux I think this is usually bash) would be used. So 
>what is the difference? I see that there is a difference but what is the 
>reason?

Clay Fandre wrote:
> You won't see your "foo.sh" process because you are not actually
> spawning off a new process. If all you have in your script is "sleep
> 200" then your current shell process will run that, which will show up
> as "bash" in your process list, not foo.sh. You need to include the
> magic line "#!/bin/bash" in order to have it spawn off a seperate
> child process named foo.sh


_______________________________________________
TCLUG Mailing List - Minneapolis/St. Paul, Minnesota
http://www.mn-linux.org tclug-list at mn-linux.org
https://mailman.real-time.com/mailman/listinfo/tclug-list