20120310

script llamando a consola, whiptail y zenity

Hay usuarios que prefieren la interfaz gráfica, los que gustan de consola o en la misma terminal. Se puede realizar un script que se ejecute de acuerdo el parámetro con una interfaz distinta.

Para esto es muy útil separar funciones y dejar en el script sola la lógica
$ cat  eje.bash
#!/bin/bash

#tipo de funcion
 if [ "$1" == "-w" ] #emplear version whiptail
   then source lib/wFunc.eje;
 elif [ "$1" == "-z" ] #emplear version zenity
   then source lib/zFunc.eje;
   else #version consola
     nombre="$@";
     source lib/cFunc.eje;
   fi ;

#obtener el nombre
 if [ -z "$nombre" ]
   then
     ObtenNom;
     nombre=`cat /tmp/algo`;
     rm /tmp/algo
   fi

#mostrar nombre
 Saluda "$nombre";


terminal
$ ./eje.bash

$ cat lib/cFunc.eje
 #consola
  function ObtenNom
    {
       read -p "como te llamas?
nombre: " nom;
       echo "$nom" > /tmp/algo;
       return 0;
    }
  function Saluda
    {
      echo "Mucho gusto, $1";
    }


whiptail
$ ./eje.bash -w

$ cat lib/wFunc.eje
 #whiptail
  function ObtenNom
    {
       whiptail --title "como se llama?" --inputbox "Nombre:" 10 40 2>/tmp/algo;
    }
  function Saluda
    {
      whiptail --msgbox "Mucho gusto, $1"  10 40
    }


zenity
$ ./eje.bash -z

$ cat lib/zFunc.eje
 #zenity
  function ObtenNom
    {
       nom=`zenity --title "Como se llama?" --entry  --text "Nombre:"`;
       echo "$nom" >/tmp/algo;
       return 0;
    }
  function Saluda
    {
      zenity --info --text "Mucho gusto, $1";
    }


terminal
$ ./eje.bash petrohs

arrancar vaio por usb

Para poder arrancar una sony vaio vng sz450fn por usb para probar o instalar un linux
  1. Entrar al menú de arranque, se logra presionando la tecla esc cuando aparece la pantalla de inicio de vaio
  2. En el menú con la flecha hacia abajo ir a la opción y presionar enter
  3. En la consola con la flecha a la derecha ir a la pestaña Advanced
  4. Con la flecha hacia abajo ir a la opción External Drive Boot, presionar enter, seleccionar la opción Enabled, presionar enter
  5. Presionar F10 y enter

20120309

generar secuencias

Para obtener la cadena correspondiente a una secuencia que va de 0-Z

$ cat sec.bash
#!/bin/bash
sec="S0000000A9Z";
ad=1;
for s in `seq -w 02 11 | sort -rn`
  do
    c=`expr substr $sec $s 1`; cc=`printf '%d' "'$c"`;
    e=`expr $cc +  $ad`; ad=0; 

    if [ $e -eq 58 ]; then e=65; fi;
    if [ $e -eq 91 ]; then e=48; ad=1; fi;
    nsec="$(printf "\\$(printf '%03o' $e)")${nsec}"
  done
echo -e " $sec \n S$nsec";
$ ./sec.bash
 S0000000A9Z
 S0000000AA0

convertir una letra en su codigo ascii

Para imprimir la representación de una letra en su valor ascii correspondiente
  • decimal
$ printf '%d\n' "'A"
65

  • hexadecimal
$ printf '%x\n' "'A"
41

  • octal
$ printf '%o\n' "'A"
101


Para imprimir la representación de un valor ascii a su letra correspondiente
  • decimal
$ printf "\\`printf '%o\n' "65"`\n"
A

  • hexadecimal
$ printf "\\x41\n"
A

  • octal
$ printf "\\101\n"
A

20120307

cofradia: Necesito ayuda o “Crowd funding” para salir de atolladero y demostrar la naturaleza de la gente

Por cofradía me he ganado unas cortesías, mi primer disco original de ubuntu, creo que hasta mi cuenta de gmail, entretenidos comentarios con las cofradivas y harto conocimiento

http://cofradia.org/2012/03/07/necesito-ayuda-o-crowd-funding-para-salir-de-atolladero-y-demostrar-la-naturaleza-de-la-gente/

Pues despues de varios años de ayudar a la gente, ahora me veo en una situación realmente extrema, provocada en parte por confianza, descuido o pendejez (si así quieren llamarlo). El caso es que por unos cargos fraudolentos que me hicieron en mi tarjeta de crédito y que tengo en disputa en HSBC (Vtsetup.comverotel NL y que esta reportado en multiples sitios), me negaron una línea de crédito que necesitaba urgentemente para levantarme personalmente y en mi negocio.
Al platicar con mi familia se me ocurrió la idea de pedir fondeo por medio de donativos pequeños (Crowd funding), o sea 100.00 (Pesos mexicanos o MXN) de tal suerte que si podía recibir 900 donaciones salvo el rancho (como coloquialmente se dice).
Mi hijo mayor me dijo que eso no era posible, que la gente no ayuda a nadie, a lo cual yo le dije que yo he ayudado a muchas personas y que creo que en la naturaleza humana esta el ayudar.
Esto, independientemente de mi problema económico, quiero demostrarle a mi hijo que es posible recibir y pedir ayuda de la gente por medio de una interacción social. obviamente si esto tiene exito y excede mis espectativas, donaremos el remanente a la causa que sugieran.
Ya me dijeron de todo, empezando con pendejo, descarado y el más atractivo fué “Cyber-mendigo”. pero quiero sentar precedente en México de que si es posible hacer “Crowd funding”. Si me pueden ayudar puede ser vía Paypal (aparece el cargo como “PAYPAL COFRADIA”)

20120302

eliminar archivos swap vim

Vi emplea un archivo swap temporal para almacenar los cambios mientras se edita. Cuando por alguna razón no se cierra correctamente quedan esos archivos huérfanos.

Para poder listar desde vim los archivos que tiene identificados
$ vim -r
Si se quiere obtener archivos
$ vim -r archivo

Suele pasar que no siempre se recuperan y quedan perdidos estos archivos.
Para buscarlos
v1 listado manual

$ find ~ -name ".sw*"
$ find ~ -name ".*.sw*"


v2 listado con alias

$ alias _swpFile='find ~ -name ".sw*" -or -name ".*.sw*"'
$ _swpFile


v3 shell empleando zenity

#!/bin/bash

if [ -n "$1" ]
  then #se le pasa por argumento
    _dirF="$1";
  else #ventana pregunta por directorio
    _dirF=`zenity --title "swpHuerf" --text "Indique el directorio a buscar" --entry`;
    if [ -z "$_dirF" ]
      then #si no pone nada asigna home
        _dirF="$HOME";
      fi
  fi

if [ ! -d $_dirF ] #no existe el directorio
  then
    zenity --title "swpHuerf" --text "No existe el directorio" --error
    exit 1;
  fi

Aborrar="$(zenity --title "swpHuerf" --text "Selecciona los archivos a eliminar" --list --multiple --column archivos `find ~ -name ".sw*" -or -name ".*.sw*" | sort`)";

echo "$Aborrar" | sed -e "s/.*/rm '&'/" -e "s/|/' '/g" | sh;