On Monday 22 Aug 2005 13:15, Albert Reiner wrote: > If this is a straw man, where do I go wrong:
Here, I think... > - When operating on the current repo, I can see two options: > > - leave the user in a different directory; most likely, the one > above the root of the repo; I don't think this is an option. As far as I understand, when a program is started, it gets a copy of the current environment, including working directory. When it exits, the programs environment, including its current working directory, are lost. So, when you execute: > | #!/bin/bash > | > | dir="`pwd`" > | cd .. > | rm -rf "$dir" > | echo $? the current directory will be 'restored' to (the nonexistant) /tmp/foo1 in this case, as you can see: > | $ mkdir /tmp/foo1 > | $ cd /tmp/foo1 > | $ bash /tmp/foo.sh > | 0 > | $ pwd > | /tmp/foo1 (I say 'restored' because actually the working directory of the interactive shell was never changed, the shell executing the script had it's own current directory) On the other hand, if you don't execute a program (just source a script), there's no environment copying, and the cd takes place in the same environment as your top-level shell: > | $ mkdir /tmp/foo1 > | $ cd /tmp/foo1 > | $ . /tmp/foo.sh > | 0 > | $ pwd > | /tmp Martin _______________________________________________ darcs-users mailing list [email protected] http://www.abridgegame.org/mailman/listinfo/darcs-users
