查看测试脚本
[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命令执行脚本的作用完全相同