Posted by smcicoss on 20 Dic 2017 in La shell BASH
Hos dejo aquí mi librería de funciones de RED.
Hos dejo aquí mi librería de funciones de RED.
Hace relativamente poco tiempo que me peleo con bash y cada vez le cojo más gusto a pesar de los problemas que tengo para manejar adecuadamente y a la primera las cadenas de caracteres, sobre todo al pasarlas como parámetros que a su vez se vuelven a enviar como parámetro de una función u otro comando. Pero a base de mucho pelear la cosa va saliendo razonablemente. Y, como soy muy vago, me gusta que mi equipo haga todo aquello que tengo que repetir un montón de veces. Por esta razón he montado este sistema que paso a explicaros. Supongo que no es la única forma de hacerlo, pero a mi me funciona bastante bien.
Seguir leyendo y/o colaborando aquí
Después de pelearme con la mucha información que hay en Internet, pero poco fiable y algo escasa para openSUSE, he conseguido hacerlo y que funcione, la última vez en relativamente poco tiempo. openSUSE tiene un buen instalador que nos deja el sistema funcionando con unos pocos clicks, pero a cambio cuesta saber donde esconde la información en la que se basa para hacer las cosas y poder modificarlas. La mayoría de las instrucciones que he encontrado para cambiar de sitio la base de datos no me funcionaron. Mezclando unas cosas con otras conseguí hacer lo que quería y encontrar un método rápido para el cambio. Planteamiento inicial: la partición que tengo para el sistema raíz está bastante ajustada y suelo utilizar otras particiones o discos mas generosas de espacio y más independientes en caso de fallos. La localización inicial (por defecto) de las bases de datos de postgres en openSUSE es "/var/lib/pgsql/data/". Este directorio es el directorio "home" para el usuario "postgres".
Añadimos las siguientes líneas
A funcionar.
Bash es un tanto peculiar al hacer comparaciones entre cadenas y entre numeros y cuesta acostumbrarse a su sintaxis. Los espacios que hay que dejar deapues abrir corchete y antes de cerrarlo. Tambien es peculiar en las formas de tratar los numeros: son cadenas hasta que se opera con ellos.
#! /bin/bash
numero_valido='^-?[0-9]+([.][0-9]+)?$'
if [[ $1 = $2 ]]; then
echo "'$1' es igual a '$2'"
else
echo "'$1' es diferente de '$2'"
fi
if [[ $1 == $2 ]]; then
echo "'$1' es igual a '$2'"
else
echo "'$1' es diferente de '$2'"
fi
if [[ $1 =~ $numero_valido ]] ; then
if [[ $1 -eq 0 ]]; then
echo "El primero vale cero y mutiplicado por $2 es "`expr $1 \* $2`
else
echo "El primero no vale cero y mutiplicado por $2 es "`expr $1 \* $2`
fi
else
echo "'$1' no es un número válido"
fi
numero=`expr $1 \* 1 2>/dev/null`
if [[ $1 == $numero ]]; then
echo "$1 es un numero"
else
echo "$1 no es un numero"
fi