Answers:
该源代码解释的差异为如何处理的--help
选项。
/* Recognize --help or --version, but only when invoked in the "[" form, when the last argument is not "]". Use direct parsing, rather than parse_long_options, to avoid accepting abbreviations. POSIX allows "[ --help" and "[ --version" to have the usual GNU behavior, but it requires "test --help" and "test --version" to exit silently with status 0. */
示范
$ /usr/bin/test --help
$
$ /usr/bin/[ --help
Usage: test EXPRESSION
or: test
or: [ EXPRESSION ]
or: [ ]
or: [ OPTION
Exit with the status determined by EXPRESSION.
[...]
如您所说bash
,在内置版本中,唯一的不同是最后[
需要]
。
通常,它们是具有硬链接的相同二进制文件。取决于外壳,内部实现可以用于test
和[
测试,而不是二进制。就生成过程而言,这是更有效的方法,并且可以提供与二进制程序test
提供的选项不同的选项。
除了呼叫格式的差异外,它们都提供相同的功能。