[root@SR18-151 lol]# vim hu.sh
#!/bin/bash
echo $$
evar=12345
保存
[root@SR18-151 lol]# ll
总用量 4
-rw-r--r-- 1 root root 31 8月 31 06:13 hu.sh
能否运行
source hu.sh √
. hu.sh √
./hu.sh ×
sh hu.sh √
添加权限
[root@SR18-151 lol]# chmod +x hu.sh
[root@SR18-151 lol]# ll
总用量 4
-rwxr-xr-x 1 root root 31 8月 31 06:13 hu.sh
进行测试
[root@SR18-151 lol]# echo $$
1227
当前bash进程号
[root@SR18-151 lol]# unset evar;source hu.sh;echo $evar
1227
当前进程没变
12345
脚本中变量能打印出来
[root@SR18-151 lol]# unset evar;. hu.sh;echo $evar
1227
当前进程没变
12345
脚本中变量能打印出来
[root@SR18-151 lol]# unset evar;sh hu.sh;echo $evar
1313
当前进程号改变
脚本中变量打印不出来
[root@SR18-151 lol]# unset evar;./hu.sh;echo $evar
1314
当前进程号改变
脚本中变量打印不出来
[root@SR18-151 lol]#
总结 source和.不改变当前进程号,./和sh改变当前进程号
source和.执行完脚本,脚本中变量能打印出来,./和sh执行完脚本,脚本变量打印不出来