我被要求找到一个不进行任何系统调用的 shell 命令。我进行了很多搜索,最后在这里询问是否有任何命令在 linux shell 或 unix 中不会在后端调用系统调用。
谢谢。
我被要求找到一个不进行任何系统调用的 shell 命令。我进行了很多搜索,最后在这里询问是否有任何命令在 linux shell 或 unix 中不会在后端调用系统调用。
谢谢。
是的部分...
有许多 shell 内置函数可以处理 shell 宏处理器编程语言的控制流或定义。
只有少数内置函数本质上需要进行任何系统调用;一般来说,它们只是改变 shell 内存映像中的状态。
没有部分... _
实际上,您甚至不能只在 shell 中键入Enter而不运行许多系统调用。shell 可能会等待(2)来查看是否有任何子进程终止,它可能会检查时间,它通常会打印一个提示符......当然它会读取下一个命令。
想想 shell 是什么,它是如何运行命令的。
shell 是一个解释器。粗略地说,有一个解释器循环
do {
get_next_command();
switch(next_command){
cmd_alias: ...
cmd_break: ...
...
}
} while (true);
现在想想,哪个命令只是更新了shell进程的内部结构,哪个命令需要调用操作系统来执行它的功能。