2 bash
测试是内置的 shell 还是实际的程序?
bruce@Bruce:~$ type -a test
test is a shell builtin
test is /usr/bin/test
bruce@Bruce:~$
bruce@Bruce:~$ file /usr/bin/test
/usr/bin/test: ELF 64-bit LSB executable
bruce@Bruce:~$
Run Code Online (Sandbox Code Playgroud)
我的系统运行的是 Ubuntu 13.04 和 BASH 4.2.45(1)-release。
对于我的第一种方法,似乎我并没有真正了解您的问题。将尝试进一步解释它......
尽管该程序test是 GNU coreutils 包的一部分,因此将随任何 GNU/Linux 系统一起交付,但它也被编译为bash大多数发行版中的内置程序。我猜这是为了提高性能,因为它不需要为每个条件语句启动一个子进程。毋庸置疑,如果系统中存在两者,shell 将使用内置命令来支持二进制文件。但是你可以调用:
/usr/bin/test ...
Run Code Online (Sandbox Code Playgroud)
...如果你想显式调用二进制文件。
进一步注意,这bash不是大多数系统上唯一的 shell,其他 shell 可能没有这个内置功能(dash例如)。还有一些系统甚至可能还没有bash安装。对于这种情况,有来自 coreutils 的二进制文件。
它很可能是您系统中的内置程序。要检查此类型:
help test
Run Code Online (Sandbox Code Playgroud)
如果你看到一个帮助页面,它是一个内置的
你也可以输入:
type -t test
Run Code Online (Sandbox Code Playgroud)
由此可见:
builtin
Run Code Online (Sandbox Code Playgroud)
在我的系统上
| 归档时间: |
|
| 查看次数: |
1158 次 |
| 最近记录: |