Ejemplos programación en bash
Convertir a mp3
- Un script "mu chorra" que me convierte las pistas de un CD de audio a archivos MP3:
#!/bin/sh
cd paranoia -vsZB
for f1 in *.wav;
do
f2=`echo "$f1" | cut -d '.' -f 1`;
lame -f "$f2.cdda.wav" "$f2.mp3";
done
rm *.wav
Otro script "complicado" que me permite escuchar las radios más usuales para mi:
Escuchar radio online
#!/bin/sh
function Emisora
{
clear
echo " 1 = Los 40 Principales 2 = RNE Radio 1"
echo " 3 = RNE Radio Clasica 4 = RNE Radio 3"
echo " 5 = MASFMBEGASTRI 0=Salir"
echo
echo ""
echo
echo "Pulsa Ctrl + C para salir de la emisora y elegir una nueva"
echo "0 , Para abandonar el programa"
echo
# echo "Las tildes y caracteres especiales han sido elimina-"
# echo "dos a proposito para una correcta visualizacion."
# echo
echo -n "Numero de Emisora a escuchar: "
read choice
# **********************
reproductor="mplayer -cache 256"
# **********************
if [ $choice -eq 1 ] ; then
# 1.Los 40 Principales
$reproductor http://66.175.96.10/co40p
elif [ $choice -eq 2 ] ; then
# 2.RNE Radio 1
mplayer -playlist http://radio1.rtve.stream.flumotion.com/rtve/radio1.mp3.m3u
elif [ $choice -eq 3 ] ; then
# 3.RNE Radio Clasica
mplayer -playlist http://radioclasica.rtve.stream.flumotion.com/rtve/radioclasica.mp3.m3u
elif [ $choice -eq 4 ] ; then
# 4.RNE Radio 3
mplayer -playlist http://radio3.rtve.stream.flumotion.com/rtve/radio3.mp3.m3u
elif [ $choice -eq 5 ] ; then
# 5.MASFMBEGASTRI
$reproductor mms://62.37.237.34/masfmbegastri
elif [ $choice -eq 0 ] ; then
exit 0
else echo "Esa cadena no existe"
fi
Emisora
}
Emisora
Como ya he dicho al principio, estos scrips solo son la punta del iceberg pero que me han hecho ver la potencia de los shell script.
Aquí otro ejemplo de una agenda programada en bash:
Agenda
#!/bin/bash
FICHERO="listado.txt"
function Menu
{
echo "_____________MENU_____________"
echo ""
echo " 1. Introducir Contacto"
echo " 2. Buscar Contacto"
echo " 3. Listar Contactos"
echo " 4. Tamanio de la Agenda"
echo " 5. Salir"
}
function Introducir
{
if [ -e "listado.txt" ]; then # Si el fichero existe...
echo "Introduzca datos de la persona: "
read -p "Nombre:" NOMBRE
read -p "Primer apellido: " APELLIDO1
read -p "Segundo apellido: " APELLIDO2
read -p "Telefono: " TELEFONO
read -p "Edad: " EDAD
# Redireccionamos los datos introducidos al fichero de la agenda
echo "$NOMBRE:$APELLIDO1:$APELLIDO2:$TELEFONO:$EDAD" >> $FICHERO
else
# Si no existe el fichero, damos el mensaje de error...
echo "No se ha podido acceder al archivo de listado!"
fi
echo
}
function Buscar
{
if [ -s $FICHERO ]; then
echo "Introduzca datos de la persona a buscar: "
read -p "Nombre: " NOMBRE
read -p "Primer apellido: " APELLIDO1
DATOS="$NOMBRE:$APELLIDO1" # Metemos en DATOS nuestra busqueda
SALIDA=$(grep "$DATOS" $FICHERO) # Con grep asigna a salida el contenido de la linea
echo -e "${SALIDA//:/n}" # Cambiamos el caracter ":" por saltos de linea "n"
else
echo "El fichero no existe o no contiene entradas en la agenda"
fi
}
function Listar
{
if [ -s $FICHERO ]; then # Si existe el fichero y contiene datos
for linea in $(cat $FICHERO) # Recorremos cada linea del fichero
do
echo "__________________"
echo -e "${linea//:/n}" # Sacamos la linea con formato
echo "__________________"
echo ""
echo "Pulse una tecla..."
read
done
else
echo "No existen datos en la agenda"
fi
}
function Tamanyo
{
echo "Tamanyo en bloques (bloques * 32bytes)"
echo "______________________________________"
echo "$(ls --size $FICHERO)"
echo ""
}
opc=0
salir=5
while [ $opc -ne $salir ]; # Mientras el valor de $opt es distinto del valor de $salir...
do
clear
Menu # Dibujamos el menu en pantalla
read -p "Opcion:..." opc # Escogemos la opcion deseada
if [ $opc -ge 1 ] && [ $opc -le 5 ]; then # No se por que no funciona el rango...!!!!!!!!!!!!!!!!!!!!!!
clear
case $opc in # Acciones para las diferentes opciones del menu
1)Introducir
;;
2)Buscar
;;
3)Listar
;;
4)Tamanyo
;;
5)echo "Saliendo"
;;
esac
else
echo "No ha introducido una opcion correcta!!"
fi
echo "Pulse una tecla..."
read
done
Cambiar dns e ip
#!/bin/bash
DNS="62.37.228.20"
DNS2="80.58.61.254"
USUARIO=$(whoami)
ROOT=root
if [ $USUARIO == $ROOT ]; then
echo nameserver $DNS > /etc/resolv.conf
echo nameserver $DNS2 >> /etc/resolv.conf
echo "" > /etc/network/interfaces
echo "auto eth1
iface eth1 inet static
address 192.168.1.101
netmask 255.255.255.0" >> /etc/network/interfaces
exit 0else
echo -e "e[31mejec
utar como ROOT"
echo -e "33[0m"
readexit 1
fi
Configurar servidor proxy
#!/bin/bash
FICHERO="servers"
function Menu
{
echo "_____________MENU_____________"
echo ""
echo " 1. Introducir Servidor Proxy"
echo " 2. Buscar Servidor Proxy"
echo " 3. Listar Servidores Proxy"
echo " 4. Establecer Servidor Proxy"
echo " 5. Hacer Ping"
echo " 6. Salir"
}
function Introducir
{
if [ -e "servers" ]; then # Si el fichero existe...
echo "Introduzca url del servidor: "
read -p "url:" URL
echo "Introduzca el puerto del servidor: "
read -p "puerto:" PUERTO
echo "Introduzca el usuario del servidor: "
read -p "usuario:" USER
echo "Introduzca la contrasenya del servidor: "
read -p "contrasenya:" PASS
# Redireccionamos los datos introducidos al fichero de la agenda
echo "$URL:$PUERTO:$USER:$PASS" >> $FICHERO
else
# Si no existe el fichero, damos el mensaje de error...
echo "No se ha podido acceder al archivo de listado de servidores!"
fi
}
function Buscar
{
if [ -s $FICHERO ]; then
echo "Introduzca url del servidor a buscar: "
read -p "url: " URL
DATOS="$URL" # Metemos en DATOS nuestra busqueda
SALIDA=$(grep "$DATOS" $FICHERO) # Con grep asigna a salida el contenido de la linea
echo -e "${SALIDA//:/n}" # Cambiamos el caracter ":" por saltos de linea "n"
else
echo "El fichero no existe o esta vacio"
fi
}
function Listar
{
if [ -s $FICHERO ]; then # Si existe el fichero y contiene datos
for linea in $(cat $FICHERO) # Recorremos cada linea del fichero
do
echo "__________________"
echo -e "${linea//:/n}" # Sacamos la linea con formato
echo "__________________"
echo ""
echo "Pulse una tecla..."
read
done
else
echo "El fichero no existe o esta vacio"
fi
}
function Set
{
if [ $(whoami) != "root" ]; then
echo "Debes ser root para correr este script."
echo "Para entrar como root, escribe "sudo su" sin las comillas."
exit 1
fi
echo "Introduzca url del servidor: "
read -p "url:" URL
echo "Introduzca el puerto del servidor: "
read -p "puerto:" PUERTO
echo "Introduzca el usuario del servidor: "
read -p "usuario:" USER
echo "Introduzca la contrasenya del servidor: "
read -p "contrasenya:" PASS
export http_proxy=http://$USER:$PASS@$URL:$PUERTO
}
function Ping
{
echo "Introduzca url del servidor a alcanzar: "
read -p "url:" URL2
ping $URL2
}
function Ver
{
cat /etc/environment
}
opc=0
salir=6
while [ $opc -ne $salir ]; # Mientras el valor de $opt es distinto del valor de $salir...
do
clear
Menu # Dibujamos el menu en pantalla
read -p "Opcion:..." opc # Escogemos la opcion deseada
if [ $opc -ge 1 ] && [ $opc -le 7 ]; then # No se por que no funciona el rango...!!!!!!!!!!!!!!!!!!!!!!
clear
case $opc in # Acciones para las diferentes opciones del menu
1)Introducir
;;
2)Buscar
;;
3)Listar
;;
4)Set
;;
 
; 5)Ping
;;
6)Ver
;;
7)echo "Saliendo"
;;
esac
else
echo "No ha introducido una opcion correcta!!"
fi
echo "Pulse una tecla..."
read
done
No hay comentarios:
Publicar un comentario