Consultas, desarrollo de programas y petición de presupuestos:

jueves, 12 de julio de 2012

If en bash


if condicion
then
…..
…..
else
…..
….
fi
If condicion ; then
…......
…......
else
….....
…....
fi
Si condición (x) pone todo en la misma linea tiene que ir separado por ;


Nota importante:

En C: 0 es falso, distinto de 0 es verdadero.

En Bash: 0 es verdadero, y distinto de 0 es falso


En la condición (x) devuelve el valor de retorno del programa (return 0)
Ejemplo:

if cd $1
then
echo “$1 es un directorio valido”
else
echo “$1 no es un directorio”
fi
Si existe el directorio del argumento $1, devuelve 0, y escribira “es un directorio valido”
sino “no es un directorio valido”

Para poder hacer comparaciones con el if, no existen los operaciones de comparación. Se pueden comparar cadenas con cadenas.
El comando test es un comando que hace comparaciones en bash.
Ejemplo:
text -d: si es un directorio
if test -d $1 → si esiste y es un directorio (-d), la comprobación x se cumple y te devuelve return 0

text -z: cierto si la longiud de la cadena es cero
if test -z “$1” → se debe indicar “$1” entre comillas para indicar cadena.
then
echo “debe indicar un directorio”
fi

Se pueden utilizar los comparadores = y !=

if test “$1”=”-c”
El comando text tambien se puede escribir asi: if [ “$1” = “-c” ]

Si queremos unir dos operaciones que sean ciertas usamos: -o (una u otra)
ejemplo: if [ “$1” = “-c” -o “$1” = “-b” ] (-o similar en C a ||)

Usaremos -a como si fuera && en C (una y otra)
ejemplo: if [ “$1” = “-c” -a “$1” = “-b” ]

Os dejo tabla de equivalencias:
Script en Bash
C
-o
|| (o)
-a
&& (y)
-eq
=
-ne
!=
-lt
<
-le
<=
-gt
>
-ge
>0




No hay comentarios:

Publicar un comentario