结论一: ./*.sh的执行方式等价于sh ./*.sh或者bash ./*.sh,此三种执行脚本的方式都是重新启动一个子shell,在子shell中执行此脚本。
结论二: .source ./*.sh和 . ./*.sh的执行方式是等价的,即两种执行方式都是在当前shell进程中执行此脚本,而不是重新启动一个shell 而在子shell进程中执行此脚本。
验证依据:没有被export导出的变量(即非环境变量)是不能被子shell继承的
验证结果:
[[email protected] ~]#name=hashlinux //定义一般变量
[[email protected] ~]# echo ${name}
hashlinux
[[email protected] ~]# cat test.sh //验证脚本,实例化标题中的./*.sh
#!/bin/sh
echo ${name}
[[email protected] ~]# ls -l test.sh //验证脚本可执行
-rwxr-xr-x 1 root root 23 Feb 6 11:09 test.sh
[[email protected] ~]# ./test.sh //以下三个命令证明了结论一
[[email protected] ~]# sh ./test.sh
[[email protected] ~]# bash ./test.sh
[[email protected] ~]# . ./test.sh //以下两个命令证明了结论二
hashlinux
[[email protected] ~]# source ./test.sh
hashlinux
[[email protected] ~]#