When the script is done, any changes that it made to the environment are discarded. . script The above sources the script. It is as if the commands had been typed in directly. Any environment changes are kept. source script This also sources the script. The source command is not required by POSIX and therefore is less portable than the shorter ..
source is a shell keyword that is supposed to be used like this: source file where file contains valid shell commands. These shell commands will be executed in the current shell as if typed from the command line.
2 source is there for readability and self-documentation, . exists because it is quick to type. The commands are identical. Perl has long and short versions of many of its control variables for the same reason.
You have an alias which is overriding the builtin source (fix with unalias source) You have a function which is overriding source (fix with unset -f source) You are somehow not using bash (although your bang line would suggest you are). source is not POSIX. Using source on dash does not work, only . works.
I've read that BASH_SOURCE should be populated with the name of the executing script (and it works!). But why does BASH_SOURCE hold the name of the executing script, when it is defined in man bash as an array of source filenames corresponding to shell functions?
We are intermittently seeing kernel: martian source log entries for eth0 on a couple of our servers. The interesting thing is that they are to and from the same IP. For instance: Nov 4 02:20:27
However, when you source something, it is run in your current shell which, because it is interactive, has already loaded the aliases and therefore the fi alias is recognized and breaks the sourcing.
What is the difference between sourcing ('.' or 'source') and executing a file in bash? Ask Question Asked 13 years, 4 months ago Modified 4 years, 9 months ago
Is there a resource to download a specific kernel version source? For example, I want to get 2.6.36.2 sources to compare with this package and see what changes were introduced?
I.e., unpack the source package from your distribution, replace the source with the upstream version, check if any of the distribution's patches or configuration tweaks still apply, build the binary package (make sure you changed the version of the packaged stuff!) and install that one. Yes, it is more work than just building and installing.