解释器文件(interpreter file)

来源:互联网 发布:达观数据 公众号 编辑:程序博客网 时间:2024/05/16 10:20

解释器文件(interpreter file)是以:

#! pathname [ optional-argument ]

作为起始行的文本文件,exec执行的不是解释器文件,而是解释器,即pathname.

简单来说,当以一个解释器文件作参数调用exec时,exec内部首先会得到错误,因为该文件

并非机器可执行,于是把它识别为解释器文件,调用pathname(那应该是execl啊,但书上说

是execlp),并传给它参数:

optional-argument, interpreter-file's path, arguments of the interpreter-file

可能与具体实现有些出入吧,但就此打住好了.

采用解释器文件比在shell中调用解释器减少了开销,在后一种情况,sh首先被执行,然后sh

会对解释器进行fork, exec, wait,而在前一种情况,只是直接执行解释器罢了.

 

*就算直接从shell中调用shell script,也是fork, exec, wait,不过exec执行的是sh.

原创粉丝点击