strace 如何知道使用 /bin/echo 而不是内置的失败

strace 如何知道使用 /bin/echo 而不是内置的失败

当我这样做时strace echo hello,我看到它正在使用,但应该首先找到/bin/echo内置。 echostrace 是否有跳过内置命令的功能? strace——版本 4.5.19

我知道 strace 无法像处理系统可执行文件那样处理内置命令。

答案1

因为 strace 不是 shell,所以 strace 使用 exec。

答案2

当您向 shell 键入命令(例如echo hello world)时,shell 会解释该命令,并在查找单独的可执行文件之前检查是否可以使用 shell 内置命令。

当您使用 时strace,您要求它找到一个可执行文件并代表您运行它。与 shell 不同,strace它没有自己的内置命令。

相关内容