前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux shell脚本sh和source区别

linux shell脚本sh和source区别

作者头像
felixxue
发布2022-12-30 09:58:50
4.5K0
发布2022-12-30 09:58:50
举报
文章被收录于专栏:xueflyxuefly

shell中使用source xxx.sh ,是直接运行xxx.sh的命令,不创建子shell,而sh则创建子shell,子shell里面 的变量父shell无法使用,对环境变量的修改也不影响父shell。父shell中的局部变量,子shell也无法使用,只有父shell的环境变量, 子shell能够使用。

sh 创建了子shell和当前的shell并行执行,子shell中执行,脚本设置的变量不会影响当前shell。一旦子Shell中的执行完毕,此子Shell随即结束,回到父Shell中,不会影响父Shell原本的环境。

sh执行脚本

source执行脚本

还有个办法可以在父shell和子shell中分别加上 echo $SHLVL ,显示当前运行层级,可以明显的看出来:

两种执行层级不同

[root@bogon home]# cat father.sh

#!/bin/bash

echo "father shell"

echo $SHLVL

echo "father shell"

echo "source son shell"

source son.sh

echo "source son shell"

echo "sh son shell"

sh son.sh

echo "sh son shell"

[root@bogon home]# cat son.sh

#!/bin/bash

echo $SHLVL

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档