¿Qué significan -s y [[]] en una condición if en bash?

if [[ -s log.txt ]];

¿Qué significa -s? Sé que -z significa cadena de tamaño cero. No puedo encontrar ninguna documentación sobre -s.

Qué significa [] o [[]], mientras escribo una condición if. He usado if sin [] o [[]] y funcionó bien.

Respuesta

La prueba -s devuelve verdadero si

[…] si el archivo existe y tiene un tamaño mayor que cero

Esto está documentado en el manual bash, y también en el manual para la utilidad test (la prueba también se puede escribir if test -s file; then).

Para [ ... ] y [[ ... ]], consulte: Bash – Si hay confusión de sintaxis

Respuesta

-s ARCHIVO: – El ARCHIVO existe y tiene un tamaño mayor que cero.

La parte […] permite probar una condición utilizando operadores. Piense en ello como una declaración if. En su ejemplo, está utilizando el operador -s, que prueba que el archivo referenciado no está vacío.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *