如何判断一个命令是函数调用、脚本调用、内置命令还是外部程序?

如何判断一个命令是函数调用、脚本调用、内置命令还是外部程序?

在 Bash 中,我们可以将函数调用、脚本调用、内置命令或外部程序作为命令运行。

相反,我们如何判断给定的命令名称是函数调用、脚本调用、内置命令还是外部程序?

谢谢。

答案1

内置命令type可以告诉您命令是内置命令、函数还是外部程序:

> type locate
locate is /usr/bin/locate
> type type
type is a shell builtin

type -t提供更容易解析的输出。

type不区分已编译的可执行文件和脚本;但是,您可以用来file区分给type定名称是外部命令的这两个随时报告:

> file ~/bin/c
/Users/steved/bin/c: POSIX shell script text executable, ASCII text
> file /usr/bin/locate
/usr/bin/locate: Mach-O 64-bit executable x86_64

相关内容