Linux-直接运行shell文件 与 source 执行shell文件,执行过程分别是怎么的?
运行shell脚本有两种方式(调用命令解释器来执行文件除外),一种就是:文件有可执行权限,直接运行shell文件,一种就是通过使用source来运行执行文件,但是这两种执行的过程是怎样的呢?
举个简单的例子,
#! /bin/sh
cd /www
echo 'ok'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
简单的说
在当前shell中运行命令./xx.sh会fork一个新的子shell来允许xx.sh脚本
而通过source xx.sh的方式调用则会在当前shell中直接运行xx.sh中的命令
shell脚本在./xx.sh执行的时候是运行在subShell下的,生命周期到这个subShell执行完为止。所以工作目录不会改变.
source命令也是点命令,所以上面的命令也可以写成. ./xx.sh他没有建立一个subShell,是在当前的shell下运行的,所以会修改当前的目录到/www下。