linux 执行shell脚本的方式及一些区别

linux执行shell脚本有3种方式

1使文件具有可执行权限chmod +x  file  这样可以直接运行

2直接调用命令解释器执行

3使用source 执行文件


下面以一个简单的shell 说明他们的一点区别

#!  /bin/bash

cd /tmp  # 当前目录不再这里;

echo  "hello  world";


第一种执行方式

zhanghong@ubuntu:~/shell$ ./echo.sh
hello  world
zhanghong@ubuntu:~/shell$ pwd
/home/zhanghong/shell

第二种

zhanghong@ubuntu:~/shell$ bash ./echo.sh
hello  world
zhanghong@ubuntu:~/shell$ pwd
/home/zhanghong/shell


第3中种

zhanghong@ubuntu:~/shell$ source ./echo.sh
hello  world
zhanghong@ubuntu:/tmp$ pwd
/tmp

看出区别了把,前两种执行方式一样的,第三种执行方式有区别

说明

linux  shell  命令分三种

内建  就是shell本身包含的,他们主要集成在shell解释器中

shell函数,就是自定义的一些函数

外部命令,就是独立于shell解释器的一些外部可执行程序,比如你安装的一些程序


对于前两种,在执行过程中存在进程的创建和消亡,调用时回创建一个和父进程一样的子进程

在子进程里,以新程序执行,父进程进入休眠期,当子进程执行完毕返回时,唤醒父进程读取下一条命令

对于第3中不会创建子进程,而是在父进程中直接执行


上面的差异是因为子进程不能改变父进程的执行环境,所以CD(内建命令,只有内建命令才可以改变shell 的执行环境)没有成功,但是第3种没有子进程,所以CD  成功





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值