在Linux中点斜杠(./)和点空格点斜杠(. ./)执行脚本之间的区别
2014-09-26 21:33
260 查看
1.点斜杠执行脚本是启动了另一个Shell去执行脚本(另一个进程),所以点斜杠执行脚本时,设置的环境变量会随着进程的退出而结束,其中的环境变量设置对当前Shell不起作用。
2.点空格点斜杠执行脚本,是相当于source ./执行脚本,source是执行脚本当中的命令,也就是说在当前进程中执行命令,所以其中的环境变量的设置会对当前Shell其作用。
例如: 如下test.sh脚本
(1) 执行命令:
$ ./test.sh
$ echo $Hello
执行结果: (空)
所以设置此环境变量,没有对当前Shell起作用。
(2) 执行命令:
$ . ./test.sh
$ echo $Hello
执行结果: Hello World
对当前Shell设置此环境变量。
以下是man bash中的一段话:
2.点空格点斜杠执行脚本,是相当于source ./执行脚本,source是执行脚本当中的命令,也就是说在当前进程中执行命令,所以其中的环境变量的设置会对当前Shell其作用。
例如: 如下test.sh脚本
#!/bin/bash export Hello="Hello World"
(1) 执行命令:
$ ./test.sh
$ echo $Hello
执行结果: (空)
所以设置此环境变量,没有对当前Shell起作用。
(2) 执行命令:
$ . ./test.sh
$ echo $Hello
执行结果: Hello World
对当前Shell设置此环境变量。
以下是man bash中的一段话:
source filename [arguments] Read and execute commands from filename in the current shell environment and return the exit status of the last command executed from filename. If filename does not contain a slash, file names in PATH are used to find the directory containing filename. The file searched for in PATH need not be executable. When bash is not in posix mode, the current directory is searched if no file is found in PATH. If the sourcepath option to the shopt builtin command is turned off, the PATH is not searched. 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 status of the last command exited within the script (0 if no commands are executed), and false if filename is not found or cannot be read.
相关文章推荐
- 在Ubuntu中点斜杠和点空格点斜杠执行脚本之间的区别
- 在Ubuntu中点斜杠和点空格点斜杠执行脚本之间的区别
- ./(点斜杠)与. (点空格)执行脚本文件的区别
- ./(点斜杠)与. (点空格)执行脚本文件的区别
- linux 执行shell脚本的方式及一些区别
- linux执行shell脚本的方式及一些区别
- Linux中profile、bashrc、~/.bash_profile、~/.bashrc、~/.bash_profile之间的区别和联系以及执行顺序
- Linux上执行Tcl脚本与Tcl环境下执行脚本,还是有些区别的。(Tcpdump命令)
- AIX, Linux下将脚本放到后台执行——加nohup与不加nohup的区别
- 在Linux中用source,dot(.)和直接用脚本文件名执行shell脚本的区别
- LINUX_004:将脚本放到后台执行——加nohup与不加nohup的区别
- Linux执行shell脚本方式及区别&命令后台运行
- linux 下source、sh、bash、./执行脚本的区别
- ubuntu(linux)下source、sh、bash、./执行脚本的区别
- linux 下source、sh、bash、./执行脚本的区别
- linux执行shell脚本的方式及一些区别
- Linux学习之道: ubuntu下source、sh、bash、./执行脚本的区别
- 在Linux中用source,dot(.)和直接用脚本文件名执行shell脚本的区别
- 在Linux中用source,dot(.)和直接用脚本文件名执行shell脚本的区别
- [转] 用source命令执行脚本和用sh执行脚本之间的区别