我总是很惊讶文件夹中/bin有一个[程序。
当我们做类似的事情时,这就是所谓的if [ something ]吗?
通过[在shell中显式调用该程序,它会要求一个对应的],当我提供右括号时,无论我在括号之间插入什么,它似乎都无济于事。
不用说,有关帮助有关程序不能正常工作,即无论是通常的方式man [,也没有[ --help工作。
man '['对我来说效果很好-您忘了引用[或者您对“作品”有不同的定义。
                [评估其参数,因此您需要在所有参数之间留有空格。  [ a=b ]不是比较:它将始终为true(它是一个字符串:“ a = b”,始终被评估为true),并且应将参数的数量限制为4(即使最近的实现允许更多。) 。限制为4使其更具可移植性。例如:[ "a" = "b" ]已经有4个参数:“ a”“ =” =“ b”和test arg的不必要结尾:“]”)。如果您需要更多:链测试,例如:if [ "$Var_a" = "foo" ] && [ "$Var_b" = "bar" ] ; then : do something ; fi
                !本身(未转义和未引用)不会被替换,甚至更好if ! [ ...。使用的所有bash扩展!至少都包含其他字符
                [内置了-builtin bash(也可能还有其他shell),并且可以使用-buildin 代替/bin/[。还有test-command,在许多系统上,它是至/bin/[(或反之)的符号链接-在其他系统上,则是单独的命令。
                
[指test命令expr,所以应该是man test