C语言,用于检查参数是否为shell builtin命令

C language, to check if an argument is a shell builtin command

我想写一个小壳。 如果输入参数是内置命令(如果是这样,我将分叉并执行它),我如何区分?
PS。 我正在研究Ubuntu 18.04 LTS。


好吧,如果你正在编写自己的shell,那么从技术上讲,它取决于你的实现是什么,而不是内置命令。

对于内置者

在bash,ksh等中,你可以使用compgen -b在相应的shell中生成内置列表。

-A action

...

builtin

Names of shell builtin commands. May also be specified as -b.

对于非内置者

对于non-builtins搜索路径,或参考FHS并搜索例如 / bin / sbin / usr / bin / usr / sbin。