linux ---- shell ---- 1

本文介绍了Shell中命令与脚本的执行方式,包括交互式命令执行和脚本执行的过程。对于内建命令,Shell直接调用其内部函数;而对于脚本文件,则通过解释器进行解析执行。

1. Shell 如何执行命令

1> 执行交互式命令

用户在命令行输入命令后, 一般情况下, shell 会fork并exec该命令,但是Shell的内建命令例外,执行内建命令相当于执行Shell的某个函数, 并不创建进程。如: cd / alias / umask / exit ...

 

2> 执行脚本

首先编写一个简单的脚本,保存为script.sh:

----------------------------

#! /bin/sh

cd ..

ls

----------------------------

Shell脚本中,使用#表示注释,但如果#位于第一行的开头,并且是#!(称为Shebang)则例外。他表示该脚本使用后面指定的解释器 /bin/sh解释执行。

Shell会fork一个子进程,并调用exec执行./script.sh这个程序。exec系统调用应该把子进程的代码段替换成script.sh程序的代码段,并从他的_start开始执行。然而,script.sh是一个文本文件, 根本没有代码段和_start函数,怎么办呢?其实exec有另外一种机制,如果要执行的是一个文本文件,而且文本文件的第一行是用Shebang制定了解释器,则用解释器的代码段替换当前进程,并且从解释器的_start开始执行,而这个文本文件被当作命令行参数传递给解释器。因此,执行上述脚本相当于执行程序:、

$ /bin/sh ./script.sh

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值