Pregunta

Mirando en el directorio gnuwin32 / bin, hay un archivo de programa de aspecto extraño llamado [.exe

No pude encontrarlo en la documentación, gnuwin32.sourceforge.net o en una búsqueda en google, así que lo ejecuté y obtuve:

$ [
[: missing `]'
$

así que lo di] como parámetro y obtuve

$ [ ]

$

No se quejó, así que supuse que estaba en el camino correcto. Intenté:

$ [ hello ]

de nuevo, no tengo quejas. así que probé una expresión aritmética:

$ [ 1 + 1 ]
[: +: binary operator expected
$

Probé varias combinaciones diferentes, incluido el prefijo & amp; notación postfix pero nada parecía funcionar. ¿Qué hace esta cosa?

¿Fue útil?

Solución

Se utiliza para evaluar expresiones condicionales .
Es equivalente a (¿posiblemente un enlace simbólico a?) El ejecutable test .
La página de manual es aquí .

Puede ver esto en muchos scripts de bash:

if [ "$LOGNAME" = "scott" ]
then
    echo "Logged in as Scott"
else
     echo "incorrect user"
fi

Lo curioso es que el [ no es parte del lenguaje bash, en realidad es un ejecutable cuyo código de retorno es utilizado por el 'IF'. Esta es la razón por la cual el espacio después del [ y su primer argumento es obligatorio: si se omitiera, el script intentaría ejecutar [ " $ LOGNAME " y falla.

No puede realizar operaciones aritméticas con él: use expr para eso (consulte aquí ). Sin embargo, puede probar una amplia gama de propiedades de archivo (¿existe? ¿De qué tipo es?, Etc.), así como utilizar operadores de comparación en cadenas y números.

Otros consejos

test a

==

[ a ]

Es solo azúcar

Editar: para aclarar, esa es la sintaxis condicional, p. [" a " = " a " ]

Otra respuesta ya mencionada es la misma que test . En bash, también está integrado, por lo que puede obtener ayuda con el help incorporado ( prueba de ayuda ).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top