Nrgar condición en un script

Imagen de uzpos
0 puntos

Hola

Supongamos que tengo este if:

if [ $num -ne 2 ]
then
Instrucciones
fi

¿Cómo la puedo transformar para preguntar que no se cumple cierta condición?
Sería algo así como:

if ![ $num -eq 2 ]
then
Instrucciones
fi

Pero lo que propongo no funciona.

Imagen de joseluis
+1
0
-1

El símbolo ! debe ir dentro de los corchetes.

if [ ! $num -eq 2 ]
then
   Instrucciones
fi
+1
0
-1

Fdo. Forense asesino, Censor fundamentalista, Fustigador de novatos y Patético maleducado

Imagen de uzpos
+1
0
-1

Muchas gracias,
Funciona pero, ¿y si la condición es compuesta?
Ejemplo: if [ $num -le 10 -a $num -ge 5]

Si ponemos el signo ! justo al abrir el corchete, ¿la negación afectaría a la variable o al "and? ¿No se pueden usar corchetes o paréntesis para agrupar?

+1
0
-1
Imagen de Cakitux
+1
0
-1

En tu ejempolo afectaría a la condición por completo ya que el if mandará cómo parametro de salida un verdadero o falso y estas trabajando sobre una única condición diferenciada.

Para disitinguir dos condiciones de forma "independiente" (Aunque deberán darse ambas para que se de el caso), sería if [Condicion1] && [Condicion2];then

Si ponemos el signo ! justo al abrir el corchete, ¿la negación afectaría a la variable o al "and?

Afectaría únicamente a la condición abyacente, siempre y cuando delimites las diferentes condiciones con &&

¿No se pueden usar corchetes o paréntesis para agrupar?

En cuanto a lo de la exclamación para la negación de una condición puede redactarse de dos maneras:
1) if [ ! #? ];then
2) if ! [ #? ];then

MORALEJA

Lo que tu buscas es esto:

if [ ! $num -le 10 ] && [ $num -ge 5 ];then

Saludetes

+1
0
-1

Cakitux versión 1.0.0