如何在shell中实现内置命令?

时间:2016-04-15 14:21:11

标签: linux bash shell system-calls

当shell(例如bash)调用可执行文件时,它首先fork本身,然后复制execve可执行文件。

当shell调用内置命令时,没有创建新进程,execve只能对可执行文件进行操作,而内置命令不存储在可执行文件中。

那么如何存储内置命令,以及如何根据系统调用调用它们?

3 个答案:

答案 0 :(得分:1)

“内置命令”意味着您不必运行外部程序。所以,不,根本没有涉及execve,不,甚至没有涉及任何系统调用。你的shell实际上只是解析命令字符串并看到“嘿,这是一个内置命令,让我们执行这个和那个函数”。

答案 1 :(得分:1)

您可以想象它们与shell函数相同。

因此,shell不会启动外部进程,而是调用一些内部函数库函数,该函数读取输入结果并与常规程序的主函数完全相同。

答案 2 :(得分:0)

shell进程本身只处理内置函数,并可能因此修改自身或其环境。可能根本没有进行任何系统调用。