cat a.sh echo $var aaa=5 ./a.sh export aaa=5 ./a.sh 5 设置了+x属性后直接执行脚本就是在当前SHELL下起的子SHELL, 能不能继承父SHELL中的变量, 取决于那个变量是否以export声明了. cat b.sh echo $bbb bbb=5 source b.sh 5 顺便多提一句, source执行脚本, 并不是起了子SHELL, 观感上更像是在当前SHELL中的命令串接.
设置了+x属性后直接执行脚本就是在当前SHELL下起的子SHELL, 能不能继承父SHELL中的变量, 取决于那个变量是否以export声明了.
顺便多提一句, source执行脚本, 并不是起了子SHELL, 观感上更像是在当前SHELL中的命令串接.