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

Tim*_*Tim 5 linux bash shell system-calls

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

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

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

Mar*_*ler 1

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