shell命令的执行

1.shell命令分为内置命令和外部命令。

内置命令是shell解释程序内建的,由shell直接执行,不需要派生新的进程

外部命令分为二进制代码和shell脚本。

2.

(1)为了执行外部的二进制命令,需要一种机制,以允许子进程转换为将要被执行的命令。Unix/Linux调用exec可以做到这些。它允许一个进程用其他命令的可执行代码覆盖自己。二进制代码需要由磁盘装入内存中执行。shell解释程序会调用fork自身的一个拷贝,然后用exec系列函数来执行外部命令,这样外部命令就取代了当前的fork的子shell.

(2)shell脚本的执行与二进制文件略有不同。对于shell脚本来说,shell解释程序会fork一个子shell程序,子shell程序会检查脚本的第一行(如#!/bin/bahs),找到用来执行脚本的解释程序,然后装入这个解释程序,由它执行脚本程序。在此解释程序显然是当前shell的子进程。如果这个解释程序与当前使用的shell是同一种shell,比如都是bash,它就是当前shell的子shell,脚本中的命令都是在子shell环境中执行的,不会影响当前shell的环境。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值