Jason Koo

      Stay hungry, Stay foolish!

导航

Bash Dot Operator

Posted on 2014-04-03 10:09  Jason Koo  阅读(422)  评论(0编辑  收藏  举报

Bash dot operator is also known as ‘source’.

. filename [arguments]

Read and execute commands from the filename argument in the current shell context. If filename does not contain a slash, the PATH variable is used to find filename. When Bash is not in POSIX mode, the current directory is searched if filename is not found in $PATH. If any arguments are supplied, they become the positional parameters when filename is executed. Otherwise the positional parameters are unchanged. The return status is the exit status of the last command executed, or zero if no commands are executed. If filename is not found, or cannot be read, the return status is non-zero. This builtin is equivalent to source.

. (source or dot operator)

Read and execute commands from the filename argument in the current shell context.

Syntax

      . filename [arguments]

 

      source filename [arguments]

When a script is run using source it runs within the existing shell, any variables created or modified by the script will remain available after the script completes. In contrast if the script is run just as filename, then a separate subshell (with a completely separate set of variables) would be spawned to run the script.

There is a subtle difference between executing a script by running .ss64script (dot ss64script) and . ss64script (dot space ss64script)
the first is running a file thats been hidden from the 'ls' command, (although ls -a will show hidden files) the second option will execute ss64script even if it has not been set as an executable with chmod.

Unless you provide an exact path to filename then bash will look first via the PATH variable and then in the current directory (only if filename is not found in $PATH.) If any arguments are supplied, they become the positional parameters when filename is executed. Otherwise the positional parameters are unchanged.

When a script is run using `source' it runs within the existing shell, any variables created or modified by the script will remain available after the script completes.

If a script is run just as ss64script, then a separate subshell (with a separate set of variables) will be spawned to run the script.

Other ways that the bash shell may interpret a dot/period: 
A dot can represent the current directory ("./filename") 
In a regular expression, "." will match any single character, (not zero or more characters.)

A dot/period '.' is a synonym for 'source'

source is a bourne shell builtin and a POSIX `special' builtin

The return status is the exit status of the last command executed, or zero if no commands are executed. If filename is not found, or cannot be read, the return status is non-zero.