44.23 Reading Files with the . and source CommandsAs article 6.2 explains, UNIX programs can never, ever modify the environment of their parents. A program can only modify the environment that later will be passed to its children. This is a common mistake that many new UNIX users make: they try to write a program that changes a directory (or does something else involving an environment variable) and try to figure out why it doesn't work. You can't do this. If you write a program that executes the cd command, that cd will be effective within your program - but when the program finishes, you'll be back in your original (parent) shell. One workaround is to "source" the shell script file (for csh and bash ) or run it as a "dot" script (sh , ksh and bash too). For example, if the file named change-my-directory contains: cd /somewhere/else you could use the following commands to change the current directory of the current shell: % The source
and
If your shell doesn't have
shell functions (10.9
)
,
you can
simulate them (10.10
)
with the
- , |
|