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