script - operadores logicos bash
utilizando y(&&) operador en script if declaration bash (1)
Entonces, para hacer que su expresión funcione, cambiar &&
por -a
hará el truco.
Es correcto así:
if [ -f $VAR1 ] && [ -f $VAR2 ] && [ -f $VAR3 ]
then ....
o como
if [[ -f $VAR1 && -f $VAR2 && -f $VAR3 ]]
then ....
o incluso
if [ -f $VAR1 -a -f $VAR2 -a -f $VAR3 ]
then ....
Puede encontrar más detalles en esta pregunta bash: múltiples operadores unarios en la declaración if y algunas referencias dadas allí como ¿Cuál es la diferencia entre la prueba, [y [[? .
Tengo tres variables:
VAR1="file1"
VAR2="file2"
VAR3="file3"
Cómo usar y ( &&
) operador en una declaración if como esta:
if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ]
then ...
fi
Cuando escribo este código, da error. ¿Cuál es la manera correcta?