Jan 03 2010

Programación Bash Evaluacion de Cadenas y Archivos


Programación Bash

El autor del contenido que voy a postear ahora es Ariel de eslinux.com, es un tema bastante util en bash y lo saco del su manual de bash que escribio en el 2004, como añadido a la guia bash..

- Evaluación de cadenas de
caracteres.

-z CADENA

verdadero si la longitud de la cadena es cero (nula).

-n CADENA

verdadero si la longitud de la cadena es distinta de cero (no nula).

CADENA1 = CADENA2

verdadero si las cadenas son iguales.

CADENA1 != CADENA2

verdadero si las cadenas son distintas.

CADENA


verdadero si la cadena es no nula.

Ejemplos:

$ STR=”abcd”
$ test ”$STR” = abcd
$ echo $?
0
$ test ”$STR” != abcd
$ echo $?
1
$ test -z ””
$ echo $?
0
$ test -n ””
$ echo $?
1
$ test ””
$ echo $?
1

Veamos un ejemplo que aclara algunos errores comunes.

$STR = ”abcd ”
$ test $STR = ”abcd ”
$ echo $?
1
$ test ”$STR” = ”abcd ”
$ echo $?
0

Vemos que STR es ”abcd ”, (con un
espacio al final), en el primer test lo comparamos con ”abcd ”
(también con un espacio al final) y debería dar verdadero
pero dio falso, ¿ a que se debe ?

Esto se produce porque el interprete primero realiza la sustitución
del valor de la variable STR y luego remueve el espacio que tiene al final
STR, porque supone que están demás, ósea que el comando
test ejecutado queda así : test ”abcd” = ”abcd
y efectivamente es falso.

Para que esto no suceda, en el segundo test la variable STR
aparece entre comillas (”$STR”), de esta manera el interprete
no le quita el espacio final y test recibe el parámetro correctamente
dando la comparación verdadera, esta es la forma correcta de hacerlo.

- Evaluación de números enteros.

Suponemos que INT1 e INT2 contienen caracteres
que representan números enteros.

INT1 -eq INT2

verdadero si INT1 es igual a INT2

INT1 -gt INT2

verdadero si INT1 es mayor que INT2 (greater than)

INT1 -lt INT2

verdadero si INT1 es menor que INT2 (less than).

INT1 -ge INT2

verdadero si INT1 es mayor o igual que INT2 (greater than or equal).

INT1 -le INT2

verdadero si INT1 es menor o igual que INT2 (less than or equal).

$ num1=0222
$ test ”$num1” -eq 222
$ echo $?
0
$ test ”$num1” -gt 222
$ echo $?
1

- Evaluación de archivos.

Veamos los mas importantes:

Suponemos que FILE contiene el path y nombre de un archivo.

-b FILE

Verdadero si el archivo existe y es un dispositivo de bloques.

-c FILE

Verdadero si el archivo existe y es un dispositivo de caracteres.

-d FILE

Verdadero si el archivo existe y es un directorio.

-e FILE

Verdadero si el archivo existe.

-f FILE

Verdadero si el archivo existe y es un archivo ordinario

-r FILE

Verdadero si el archivo existe y tenemos permiso de lectura.

-w FILE

Verdadero si el archivo existe y tenemos permiso de escritura.

-x FILE

Verdadero si el archivo existe y tenemos permiso de ejecución.

Nos vemos espero les sirva la info. Meritos para el autor.

Temas Relacionados:

  1. Manual / Tutorial Shell Script en Español Parte 3 [ Programacion Bash ]
  2. Manual / Tutorial Shell Script en Español… Parte 1 [ Programacion Bash ] [ Como Programar en Linux ]
  3. Manual / Tutorial Shell Script en Español… Parte 2 [ Programacion Bash ] [ Como Programar en Linux ]
  4. Curso PHP Parte 13 [Archivos DBM en PHP]
  5. [Curso PHP Parte 6][Manejar Archivos Con PHP]

Leave a Reply

Alibi3col theme by Themocracy