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