举例说明source执行脚本和sh执行脚本的区别

时间:2022-08-31 09:11:41

查看测试脚本

[root@test]# cat test.sh

#!/bin/sh

user='whoami'

向测试变量赋值

[root@test]# user='222'
[root@test]# echo $user
222
给与执行权限

[root@test]# chmod +x test.sh

执行脚本测试变量

[root@test]# ./test.sh && echo $user
222

用sourece方式重新测试

[root@hadoop-datanode98 home]# source test.sh && echo $user
whoami

解释:

用source执行脚本文件,执行过程不另开进程,脚本文件中设定的变量在当前shell中可以看到;

用sh执行脚本文件,是在当前进程另开子进程来执行脚本命令,脚本文件中设定的变量在当前shell中不能看到。

另外一点,source命令经常用点命令“.”来替代,用脚本文件名本身执行(如果shell脚本具有可执行权限)和用sh命令执行脚本的作用完全相同