1. 用source命令执行脚本文件和用sh执行脚本文件的区别
用source和点执行脚本文件,执行过程不另开进程,脚本文件中设定的变量在当前shell中可以看到;
用sh和./执行脚本文件,是在当前进程另开子进程来执行脚本命令,脚本文件中设定的变量在当前shell中不能看到。
如:
[root@SJSWT45-30 guoxin.ai]# cat test.sh
#!/bin/bash
echo $$
var=test
结果:
[root@SJSWT45-30 guoxin.ai]# unset var;sh test.sh ; echo $var
136804
[root@SJSWT45-30 guoxin.ai]# unset var;source test.sh ; echo $var
134359
test
[root@SJSWT45-30 guoxin.ai]# unset var;. test.sh ; echo $var
134359
test
[root@SJSWT45-30 guoxin.ai]# unset var;./test.sh ; echo $var
137033
cat access.log | awk -F ' ' '{print $1}' | sort| uniq -c| sort -k1hr | head -2