检查man test,我看到在概要下test是可能性test EXPRESSION和test。
[ EXPRESSION ], [ ] and [OPTION下面是什么意思?
为什么括号是空的,为什么没有[OPTION括号?有人可以为我解释一下吗?
NAME
test - check file types and compare values
SYNOPSIS
test EXPRESSION
test
[ EXPRESSION ]
[ ]
[ OPTION
Run Code Online (Sandbox Code Playgroud)
Mic*_*mer 11
[是另一个名字的test。所有这三行都是test带有一些选项的命令行。
在第一行,这是标准测试:[ 5 -gt 4 ]与test 5 -gt 4.
第二种是省略表达式,表示退出false( 0 arguments: Exit false (1))。
对于第三种情况,我猜您使用的是 GNU coreutils。在 GNU 中test,帮助文本包含以下注释:
Run Code Online (Sandbox Code Playgroud)NOTE: [ honors the --help and --version options, but test does not. test treats each of those as it treats any other nonempty STRING.
这是一个非 POSIX 扩展;动机似乎test是需要将这些参数视为其他任何字符串。[能够通过右]括号的存在区分选项案例和字符串案例。
请注意,您的 shell 可能会提供自己的[,因此您必须/bin/\[使用此版本。
[ OPTION并不是真的缺少括号。
事实上,也许令人惊讶的是,[有一个命令(位于/usr/bin/[)相当于test。因此(至少理论上)允许仅使用左括号,而右括号仅用作语法糖。然而,较新的 shell 版本需要它。
| 归档时间: |
|
| 查看次数: |
799 次 |
| 最近记录: |