一、source命令
1.1 source命令的使用方法
source filename.sh
- 文件没有可执行权限时,也可以使用source命令执行。
- source命令是在当前shell中执行的,并未开启子shell。所以,被执行文filename.sh中的变量,传递到了当前的shell中。
- .(点号)与source具有相同的功能。
source filename.sh 与
. filename.sh
功能一样
二、sh命令
2.1sh命令的使用方法
sh filename.sh
- 文件没有可执行权限时,也可以使用sh命令执行。
- sh命令是开启一个子shell进程,在子shell中执行脚本。变量在子shell中可以获取到,在主shell中无法获取。
- sh命令与./(点斜杠)命令,具有相同的功效。
sh filename.sh 与
./ filename.sh
功能一样
- ./(点斜杠)命令,需要文件具备可执行权限。
三、sh命令与source命令区别
新建一个2.sh脚本,内容如下:
#!/bin/bash
string="zhouhao"
3.1 sh命令
在当前主shell中执行命令:
sh 2.sh
查看变量string的值:
[root@zhouhao zhouhao]# echo $string
会发现无法获取变量string的值。因为sh是开启一个子shell执行脚本,变量在子shell中,并未传递到当前主shell中。
3.2 source命令
在当前主shell中执行命令:
source 2.sh
查看变量string的值:
[root@zhouhao zhouhao]# echo $string
zhouhao
可以获取变量string的值。因为,source命令是在当前主shell中执行脚本,变量就在当前主shell中,可以获取到。