Linux Source command and script execution method analysis
When I modified the /etc/profile file, I wanted it to take effect immediately without having to log in again; then I thought of using the source command, such as: source /etc/profile
I have studied the source and compared it with the sh execution script. Now I will summarize it.
source command:
The source command is also called the "dot command", which is a dot symbol (.) and is an internal command of bash.
Function: Make the Shell read the specified Shell program file and execute all the statements in the file in sequence
The source command is usually used to re-execute the just-modified initialization file so that it takes effect immediately without having to log out and re-register.
Usage:
source filename or . filename
The source command (from C Shell) is a built-in command of the bash shell; the dot command (.) is a dot symbol (from Bourne Shell) is another name for source.
What is the difference between source filename and sh filename and ./filename execution script?
1. When the shell script has executable permissions, there is no difference between using sh filename and ./filename to execute the script. ./filename is because the current directory is not in PATH, and all "." is used to represent the current directory.
2.sh filename Re-create a subshell and execute the statements in the script in the subshell. The subshell inherits the environment variables of the parent shell, but the new and changed variables of the subshell will not be brought back to the parent shell. Unless using export.
3.source filename: This command actually simply reads the statements in the script and executes them in the current shell in sequence, without creating a new subshell. Then all statements that create and change variables in the script will be saved in the current shell.
Example:
1. Create a new test.sh script with the content: A=1
2. Then make it executable chmod +x test.sh
3. After running sh test.sh, echo $A is displayed as empty, because A=1 is not passed back to the current shell
4. After running ./test.sh, the same Same effect
5. Run source test.sh or . test.sh, and then echo $A, 1 will be displayed, indicating that the variable A=1 is in the current shell
The above is I hope that the entire content of this article will be helpful to everyone's learning, and I also hope that everyone will support the PHP Chinese website.
For more detailed explanations on the use of the source command under Linux, please pay attention to the PHP Chinese website!