Mostrando las entradas con la etiqueta shell. Mostrar todas las entradas
Mostrando las entradas con la etiqueta shell. Mostrar todas las entradas

domingo, 28 de agosto de 2016

Activar el modo debug en bash

Yo se me van a amar aquellos que apenas empiezan como yo en el mundillo de bash y la programación en shell script

veamos cuando la opción x en bash es agregada, bash imprimirá cada comando que ejecutará antes de ejecutarlo en la salida de standard error. eso después de aplicar cualquier expansión . como resultado  tu podras ver lo que ocurre. hay que poner especial atención en el entrecomillado. Bash utiliza las comillas para presentar exactamente las cadenas que son pasadas al script como argumentos únicos 

Básicamente hay tres formas de activar el modo debug
  • Correr el script con bash -x:
    $ bash -x ./scriptsito_del_mal
  • Cambiar el shebang (header):
    #!/bin/bash -x
    [.. script ..]
  • O:
    #!/usr/bin/env bash
    set -x
  • O agregar set -x agregar -.x o +x en bloques específicos de tu codigo para prender o apagar el modo debug y solo afectar a esa parte de tu código:
    #!/usr/bin/env bash
    [..aquí no importa este código..]
    set -x
    [..aquí había problemas activar el modo debug..]
    set +x
    [..aqui ya no esta activo el modo debug ..]
la salida del modo debug usualmente se despliega en stderr,lo que implica que la observaras en la pantalla de la terminal. pero como siempre podemos utilizar una tubería para redireccionar la salida a un archivo y evitar que se despliegue todo en pantalla:
exec 2>> /home/miarchivito.out
set -x


lunes, 26 de noviembre de 2012

Comprobar la existencia de un archivo en Linux

Saludos, hoy les voy a postrar algo bien sencillo pero muy útil y es comprobar la existencia de un archivo en Linux, en realidad es sólo un par de comandos que pueden agregar a su shell

test -f nombredelarchivo
echo $?
Expliquemos ahora que ocurre aquí
, test es un comando que comprobara expresiones y genera un valor booleano a su salida, que es 0 cuando es true o verdadero y 1 para false o falso, la opción -f devuelve verdadero o cero si se cumple la condición en este caso la existencia del archivo y siempre y cuando sea un archivo regular -s comprueba que tenga un tamaño mayor que cero.

Con -r podemos ver si tiene permisos de lectura así como -w si tiene permiso de escritura o -x comprobara si tiene permiso de ejecución y -d comprobara si el archivo existe y es un directorio.

El uso de test se extiende más pudiendo comparar cadenas y retornando valor booleano, aunque para comparaciones podemos usar diff que quizá es un poco más potente.

Espero les sirva :)