shell脚本有两种执行方式,一种是直接执行,一种是使用$source
或.
命令执行
直接执行
直接执行shell脚本,bash会在当前bash下新建一个子bash进程用来执行shell脚本,此时脚本里定义的变量,并不会传会到父bash进程中
#!/bin/bashVAR=12echo $VAR
$exec.sh 12$echo $VAR #父bash中并不存在VAR$
source或.执行
使用$source
来执行一个shell脚本表示使用当前bash进程来执行shell,所以shell里的变量自然都会在当前bash中使用
$source exec.sh #也可以写成$. exec.sh12$echo $VAR12 #父bash也可以使用VAR$