[
es otro nombre para test
. Las tres líneas son líneas de comando que se ejecutan test
con algunas opciones.
En la primera línea, esta es una prueba estándar: [ 5 -gt 4 ]
es lo mismo que test 5 -gt 4
.
En el segundo, se omite la expresión, lo que significa salir de false ( 0 arguments: Exit false (1)
).
Para el tercer caso, supongo que está utilizando GNU coreutils. En GNU, test
el texto de ayuda contiene esta nota:
NOTE: [ honors the --help and --version options, but test does not.
test treats each of those as it treats any other nonempty STRING.
Esta es una extensión que no es POSIX ; La motivación parece ser que test
se requiere para tratar esos argumentos como cadenas como cualquier otro. [
es capaz de distinguir el caso de opción del caso de cadena por la presencia del ]
corchete de cierre .
Tenga en cuenta que su shell probablemente proporcionará el suyo [
, por lo que tendrá /bin/\[
que usar esta versión.