sh执行:sh执行脚本 生成子shell 而这个变量在父shell里面,而子shell中没有定义。
可比喻为儿子没有继承老爸的财产,所以啥都没有。
source执行:source (include) 把脚本直接在当前父shell环境中运行。
原理图:
例子:
[root@m01 /server/scripts]# cat show.sh #!/bin/bash echo $OLDBOY [root@m01 /server/scripts]# OLDBOY=666 [root@m01 /server/scripts]# sh show.sh #执行没有结果 [root@m01 /server/scripts]# source show.sh #执行有结果
如图:
赞赏微信赞赏
支付宝赞赏