13.2.5 Operadores condicionales del shell
Todos los comandos devuelven un estado de salida que se pueden
utilizar para expresiones condicionales:
-
�xito: 0 (Verdadero)
-
Error: 1 - 255 (Falso)
Obs�rvese que aqu� el valor 0, contrariamente a la convenci�n habitual en otras
�reas de la computaci�n, significa "verdadero". Asimismo, `[' es
equivalente al comando test
, que eval�a sus argumentos hasta `]'
como expresi�n condicional.
Expresiones condicionales b�sicas para recordar:
comando && si_�xito_ejecutar_tambi�n_este_comando ||
verdadero
comando || si_fracaso_ejecutar_en_cambio_este_comando
if [ expresi�n_condicional ]; then
si_�xito_ejecutar_este_comando
else
si_fracaso_ejecutar_este_comando
fi
En este caso || verdadero se necesita para asegurarse que este
script de shell no salga accidentalmente en esta l�nea al invocar el int�rprete
de comandos con la opci�n -e.
Los operadores de comparaci�n de archivos en las expresiones
regulares son:
-e archivo Verdadero si archivo existe.
-d archivo Verdadero si archivo existe y es un directorio.
-f archivo Verdadero si archivo existe y es un archivo normal.
-w archivo Verdadero si archivo existe y se puede escribir.
-x archivo Verdadero si archivo existe y es ejecutable.
archivo1 -nt archivo2 Verdadero si archivo1 es m�s reciente que archivo2 (modificaci�n)
archivo1 -ot archivo2 Verdadero si archivo1 es m�s antiguo que archivo2 (modificaci�n)
archivo1 -ef archivo2 Verdadero si son el mismo dispositivo o tienen igual �nodo.
Los operadores de comparaci�n de cadenas en las expresiones
condicionales son:
-z str Verdadero si la longitud de str es igual a cero.
-n str Verdadero si la longitud de str es distinta de cero.
str1 == str2 Verdadero si las str son iguales.
str1 = str2 Verdadero si las str son iguales.
(deber�a usarse "=" en vez de "==" para una extricta compatibilidad POSIX)
str1 != str2 Verdadero si las str son distintas.
str1 < str2 Verdadero si str1 est� antes que str2 (depende del local).
str1 > str2 Verdadero si str1 est� despu�s que str2 (depende del local).
Los operadores de comparaci�n aritm�tica entera en las
expresiones condicionales son -eq, -ne,
-lt, -le, -gt o -ge.