Unas cuantas preguntas sobre bash

Iniciado por Afsoon, 22 Abril 2010, 20:44 PM

0 Miembros y 1 Visitante están viendo este tema.

Afsoon

Hola buenas, empeze el a programa en bash y a la vez haciendo un script lo mas completo posible para instalar programas  y mas opciones, bueno pos que me ha surguido unos cuantos problemas son los siguientes:

1-En el script estoy ahciendo instalar conky con una configuracion predeterminada o no, bueno pues no se como añadir datos a un arhcivo en bash, es decir editar un archivo por bash y no manualmente( ya que el script lo tenia que hacer practicamente solo) bueno aqui teneis el codigo de esa parte
Citar
elif [ $opc = "6" ]
then
clear
echo "Ahora mismo empezara la instalacion de conky"
sudo aptitude install conky
clear
sleep 2
echo "Bien ya ha terminado la instalacion del conky"
echo ""
echo "Si desea que el script te descargue una configuracion ya echa o al contrario si quieres buscar la configuracion  tu y buscarla por internet"
echo ""
echo "Si quieres que se descargue con una configuracion determinada escibra (d) o si quieres hacer tu mismo escribe (y) y pulse Enter"
echo ""
read cokopc
   if [ $cokopc = "d" ]
   then
   clear
   echo "Ahora empezara a descargarse el archivo"
   echo ""
   cd /home/$USER/
   touch .conkyrc #Aqui se crea el archivo en /home/$USER/
   fi
elif [ $cokopc = "y" ]
then
echo ""
echo "Te deseo suerte a que encuentres una configuracion que te agrade y que lo consigas suerte."
clear

2-Desde ayer me esta dando unos problemas cuando ejecuto mis script, ya que hago alguno de prueba bueno este es el problema

Citar
javaversion: línea 3: [: 1.6.0_0: se esperaba un operador unario

Aqui esta el codigo
Citar
#!/bin/bash

if [ "1.6.0_0" = `java -version` ]
then
clear
echo "esta instalado"
fi

Y aprovecho para ver si esta bien echo la forma de identificar si esta instalado java, ya que tengo para ver si tiene instalado java, cuando instale JDownloader y hacer el lanzador, ya que mucho novatos no lo usan por esa causa

^Tifa^

Citar#!/bin/bash

if [ "1.6.0_0" = `java -version` ]
then
clear
echo "esta instalado"
fi

Entonces... '1.6.0_0' es un comando existente en tu sistema? no deberia ser:


if [ "`java -version`" =  "1.6.0_0"  ]

Ya que lo que te interesa es obtener la version de Java y compararla a algun valor especificado por ti  ;)

Otra cosita a considerar:

Citarelif [ $opc = "6" ]

Tienes que ver las cosas como Bash las ve.... suponte que la variable $opc=6 bien perfecto, la inicializaste con ese valor quedando mas o menos asi:

opc=6

if [ $opc = "6" ]

Esto dara error... porque Bash ve:

if [ 6 = "6" ]

Entonces.. puedes comparar un entero a un caracter???? No. Podrias resolverlo con:

if [ "$opc" = "6" ]


[u]nsigned

podes probar en usar $(comando) en lugar de `comando`, aunque lo logico es que funciones de ambas formas. Otra cosa, tu script solo se limita a la version 1.6.0_0, por lo que casi seguro ya seria obsoleto xD

Te dejo un script para detectar la version (en realidad mas que eso ;)) en sistemas GNU/Linux:

http://agiletrack.net/samples/detect-java.sh

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

leogtz

#3
En el script que dejó el compañero de arriba vi que el script necesitaba crear un archivo para analizar la salida del comando, eso no es necesario.

A mi se me ocurre hacer algo así:

Código (bash) [Seleccionar]
java -version 2> /dev/null && {
echo -e "Java instalado, version : `java -version 2>&1 | grep -i "^java version.*" | awk '{print $3}'`";
} || {
echo -e "Java no instalado";
}


leo@lein:~/Escritorio$ bash shell.sh
Java instalado, version : "1.6.0_0"
leo@lein:~/Escritorio$


Ah, pero qué bonito es Bash.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Afsoon

@Tifa esa es una PARTE del script en realidad $opc es un read opc asi que el valor de $opc es lo que inserte el USUARIO y lo que pregunte es como escribir en el archivo que creo con touch
Y a los otros gracias por lo de java version

leogtz

#5
Tienes algunas opciones para escribir en el archivo creado por touch, usando redirección o escribiendo directamente en el con algún editor de texto plano.

Código (bash) [Seleccionar]
#!/usr/bin/bash
exec 6>&1
exec > salida.txt
for i in $(seq 1 10);
do
echo -e "$i";
done
exec 1>&6 6>&-
cat salida.txt
exit 0
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Afsoon

Gracias leo guitierrez, asi podre terminarlo, pero me ha surgido un error que no se a que se debe

Citar
script.sh: línea 454: error sintáctico: no se esperaba el final del fichero

Estas son las ultimas lineas, son los finales de bucles y condiciones grandes

Citar
fi
done
fi
done
fi
fi
done
elif [ $USER != root ]
then
zenity --warning --title="No eres root" --text="No eres root/n inicie la aplicacion cuando seas root"
exit
fi #linea 453

Festor

Citar
zenity --warning --title="No eres root" --text="No eres root/n inicie la aplicacion cuando seas root"
exit
fi #linea 453

No soy ningún experto en bash pero juraría que el exit es lo último que debes escribir en un script...

Afsoon creo que sería mejor que pongas todo el código y no sólo las últimas lineas.

leogtz

El exit puede ir donde sea.

Sí, mejor pon todo el código.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Afsoon

#9
Aqui teneis todo el codigo es que lo estaba adapantando a zenity, vereis una parte que esta cancelada, es para probarla en karmic koala

Código (bash) [Seleccionar]

#!/bin/bash

#Menu principal---------------------------------------------------------------------------------------------------------
#zenity --info --title="CARGANDO..." --text="Cargando el programa"
if [ $USER = root ]
then
while true
do
clear
zenity --info --title="P.A.U" --text="Bienvenido"
zenity --info --title="P.A.U" --text="Chequeando si usa Lucid Lynx."
sleep 2
#if [ "lucid" = `lsb_release -cs` ]; then
#  if [ "i686" = `uname -m` ]; then
 #     echo using Ubuntu 10.04 Lucid Lynx - ok
  #    arch=i386
  #elif [ "x86_64" = `uname -m` ]; then
   #   echo using Ubuntu 10.04 Lucid Lynx - ok
    #  arch=amd64
 # else
  #    /usr/bin/zenity --warning --title="Error" --text="No usas Lucid Lynx de la version x32 y 64x"
   #   echo Tu no estas usando Ubuntu 10.04 Lucid Lynx, saliendo
    #  exit
  #fi
#else
#      /usr/bin/zenity --warning --title="Error" --text="Error: Tu no estas usando Lucid Lynx"
 #     echo Tu no estas usando Ubuntu 10.04 Lucid Lynx, saliendo
  #    exit
#fi
#Aqui checeara si hay algun problema que no dejaria instalar los programas...-------------------------------------------
if ps -U root -U root u | grep "synaptic" | grep -v grep > /dev/null;
then
zenity --warning --title="Close..." --text="Cierra el synaptic para poder instalar los programas"
exit
elif ps -U root -U root u | grep "update-manager" | grep -v grep > /dev/null;
then
zenity --warning --title="Close..." --text="Cierra el update-manager para poder instalar los programas"
      exit
elif ps -U root -U root u | grep "software-center" | grep -v grep > /dev/null;
then
zenity --warning --title="Close..." --text="Cierra el software-center para poder instalar los programas"       exit
elif ps -U root -U root u | grep "apt-get" | grep -v grep > /dev/null;
then
zenity --warning --title="Close..." --text="Cierra el apt-get para poder instalar los programas"
       exit
elif ps -U root -U root u | grep "dpkg" | grep -v grep > /dev/null;
then
zenity --warning --title="Close..." --text="Cierra el dpkg para poder instalar los programas"
       exit
elif ps -U root -U root u | grep "aptitude" | grep -v grep > /dev/null;
then
zenity --warning --title="Close..." --text="Cierra el aptitude para poder instalar los programas"
      exit
fi
#Aqui checeara si hay conexion a internet-----------------------------------------------------------------------------
function testConnection()
{
testconnection=`wget --tries=3 --timeout=15 www.google.com -O /tmp/testinternet &>/dev/null 2>&1`
if [ $? != 0 ]; then
zenity --info --text="<b>Error:</b> No esta conectado a internet, porfavot conectate a Internet y inicia el script de nuevo"
else
echo Internet connection - ok
fi
}
#Aqui seleccionara su opcion
opc=`zenity --title="P.A.U" --width="500" --height="450" \
--text="Bien ya se ha chequeado de que usa Lucid Lynx\n\n1. Usted ahora mismo se encuentra en el menu principal del script\n\n2. Aqui seleccionara lo que usted desea hacer, a continuacion aparecera las opciones que usted tiene hasta ahora\n\n3. Aconsejo instalar los codecs primero, sin seleccionar ninguna opcion" \
--list --column="Select" --column="Opciones" \
--checklist FALSE "Actualizar" TRUE "Codecs,extras..." FALSE "Limpiar Ubuntu" FALSE "SALIR" \
FALSE "Cambiar la posicion de los botones" FALSE "Conky" FALSE "Instalar Programas" FALSE "Otros"`
if [ $? -eq 0 ]
then
for opcs in $opc
do
# Para hacer un actualizacion del sistema mas "sostificada"-------------------------------------------------------------
if [ $opcs = "Actualizar" ]
then
upd=`zenity --title="LIMPIEZA" --text="Has seleccionado Actualizar\n. Hay dos tipos de actualizaciones una normal y otro mas sostificado.\n Si acabas de instalar mejor haz una sostificada. \n Al contrario si lo tenias instalado haz una norma."  \
   --list --column="Select" --column="Opciones" \
   --checklist FALSE "Actualizacion normal" FALSE "Actualizacion sostificada"`
if [ $? -eq 0 ]
then
for updopc in $upd
do
if [ $updopc = "Actualizacion normal" ]
then
zenity --info --title="INFO" --text="Este proceso lo mas seguro que no tarde mucho.\n Espere a que salga la ventana de informacion"
sudo aptitude update && sudo apt-get update
sleep 2
zenity --info --title="INFO" --text="Ya se ha actualizado su sistema"
clear
elif [ $updopc = "Actualizacion sostificada" ]
then
echo ""
zenity --info --title="INFO" --text="Este proceso puede que tarde mucho, espere a que te salga la ventana\n de informacion"
sudo aptitude update && sudo apt-get update
sudo aptitude upgrade && sudo apt-get upgrade
zenity --info --title="INFO" --text="Ya se ha actualiza tu sistema"
sleep 2
clear
fi
done
fi
# En esta parte es la de los codecs, codecs, formatos comprimidos.medibuntu...------------------------------------------
elif [ $opcs = "Codecs,extras..." ]
then
if [ "i686" = `uname -m` ]; then
zenity --info --title="Espere..." --text="Espere a que salga la ventana de informacion\n de que ya se ha instalado"
                          sudo echo sun-java6-jre shared/accepted-sun-dlj-v1-1 select true | sudo /usr/bin/debconf-set-selections
sudo apt-get install --yes sun-java6-plugin
                          sudo apt-get -y --force-yes install gstreamer0.10-ffmpeg gstreamer0.10-pitfdll gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse libdvdnav4 libdvdread4 libdvdcss2 libxine1-ffmpeg ffmpeg w32codecs flashplugin-nonfree sun-java6-fonts rar unrar p7zip-full p7zip-rar unace unp ttf-mscorefonts-installer ttf-liberation
zenity --info --title="Completado..." --text="Ya se ha instalado los codecs..."
else
zenity --info --title="Espere..." --text="Espere a que salga la ventana de informacion\n de que ya se ha instalado"
                          sudo echo sun-java6-jre shared/accepted-sun-dlj-v1-1 select true | sudo /usr/bin/debconf-set-selections
sudo apt-get install --yes sun-java6-plugin
                          sudo apt-get -y --force-yes install gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse libdvdnav4 libdvdread4 libdvdcss2 libxine1-ffmpeg ffmpeg w64codecs sun-java6-fonts rar unrar p7zip-full p7zip-rar unace unp ttf-mscorefonts-installer ttf-liberation
                          cd /tmp
                          wget http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.45.2.linux-x86_64.so.tar.gz
                          tar xzf libflashplayer-10.0.45.2.linux-x86_64.so.tar.gz
                          sudo mkdir /usr/lib/flashplugin-nonfree/
                          sudo mv libflashplayer.so /usr/lib/flashplugin-nonfree/
                          sudo ln -s /usr/lib/flashplugin-nonfree/libflashplayer.so /usr/lib/mozilla/plugins/libflashplayer.so
                          rm libflashplayer-10.0.45.2.linux-x86_64.so.tar.gz
zenity --info --title="Completado..." --text="Ya se ha instalado los codecs..."
                     fi
# Esta opcion lo que hace es eliminar los paquetes innecesarios del sistema de ubuntu-----------------------------------
elif [ $opcs = "Limpiar Ubuntu" ]
then
poc=`zenity --title="Limpiar Ubuntu" --width="500" --height="450" \
--text="Esta opcion es para liberar algo de espacio\n ya que cuando instalas paquetes y mas cosas se queda \n en el SO y ocupa espacio\n\n1. ADVERTENCIA: te borrara sin preguntar el mozilla thunderbird y el conky te preguntara.\n Asi que abre la terminal si tienes instalado el conky para decir que no.\n\n2 Recomiendo hacer esto cada X tiempo.\n\n3 Asi que seleccione si quiere limpiar o no" \
--list --column="Select" --column="Opcion" \
--checklist TRUE "SI" FALSE "NO"`
if  [ $? -eq 0 ]
then
for pocx in $poc
do
   if [ $pocx = "SI" ]
   then
   zenity --info --title="Limpieza.." --text="Ahora empezara la limpieza de Ubuntu"
   sudo apt-get autoremove && sudo apt-get autoclean && sudo apt-get clean
   OLDCONF=$(dpkg -l|grep "^rc"|awk '{print $2}')
   CURKERNEL=$(uname -r|sed 's/-*[a-z]//g'|sed 's/-386//g')
   LINUXPKG="linux-(image|headers|ubuntu-modules|restricted-modules)"
   METALINUXPKG="linux-(image|headers|restricted-modules)-(generic|i386|server|common|rt|xen)"
   OLDKERNELS=$(dpkg -l|awk '{print $2}'|grep -E $LINUXPKG |grep -vE $METALINUXPKG|grep -v $CURKERNEL)
   YELLOW="\033[1;33m"
   RED="\033[0;31m"
   ENDCOLOR="\033[0m"
   zenity --info --title="Limpiando" --text="$YELLOW""Cleaning apt cache...""$ENDCOLOR"
   sudo aptitude clean
   zenity --info --title="Limpiando" --text="$YELLOW""Removing old config files...""$ENDCOLOR"
   sudo aptitude purge $OLDCONF
   zenity --info --title="Limpiando" --text="$YELLOW""Removing old kernels...""$ENDCOLOR"
   sudo aptitude purge $OLDKERNELS
   zenity --info --title="Limpiando" --text="$YELLOW""Emptying every trashes...""$ENDCOLOR"
   rm -rf /home/*/.local/share/Trash/*/** &> /dev/null
   rm -rf /root/.local/share/Trash/*/** &> /dev/null
   clear
   mop=`zenity --title="P.A.U" --text="¿Tenia usted instalado mozilla-thunderbird?" \
--list --column="Select" --column="Opcion" \
--checklist FALSE "SI" FALSE "NO"`
if [ $? -eq 0 ]
then
for mopc in $mop
do

       if [ "$mopc" = "SI" ]
           then
   zenity --info --title="Empezara..." --text="ya empezara a instalarse"
           sudo aptitude install  mozilla-thunderbird thunderbird-locale-es-es
   clear
   zenity --info --title="Ya se ha instalado" --text="Ya ha instalado el Mozilla Thunderbird"
   el=`zenity --title="P.A.U" --text="¿Que quieres hacer?" \
        --list --column="Select" --column="Opcion" \
        --checklist FALSE "SALIR" FALSE "MENU PRINCIPAL"`
if [ $? -eq 0 ]
then
for elop in $el
do
                if [ "$elop" = "SALIR" ]
                then
clear
                echo ""
                zenity --info --title="Saliendo" --text="Gracias por usar el script"
                clear
                exit
                elif [ "$elop" = "MENU PRINCIPAL" ]
                then
zenity --info --title="P.A.U" --text="Ahora iras al menu principal"
            sleep 2
            clear
fi
done
fi
        elif [ "$mopc" = "NO" ]
            then
    clear
    elx=`zenity --title="P.A.U" --text="¿Que quieres hacer?" \
        --list --column="Select" --column="Opcion" \
        --checklist FALSE "SALIR" FALSE "MENU PRINCIPAL"`
if [ $? -eq 0 ]
then
for elopcx in $elx
do
                if [ "$elopcx" = "SALIR" ]
                then
                echo ""
                zenity --info --title="Saliendo" --text="Gracias por usar el script"
                clear
                exit
                elif [ "$elopcx" = "MENU PRINCIPAL" ]
                then
                echo ""
                zenity --info --title="P.A.U" --text="Ahora iras al menu principal"
  sleep 2
    clear
fi
done
fi
    elif [ "$pocx" = "NO" ]
    then
  echo "Es tu decision si quieres que se te llene de paquetes inecesarios"
    sleep 5
fi
done
fi
# La opcion de salir-------------------------------------------------------------------------------------------------
elif [ $opcs = "SALIR" ]
then
clear
zenity --info --title="Saliendo..." --text=" Gracias por usar este script. Hasta la proxima"
sleep 3
clear
exit
# La opcion de cambiar el sentido de los botones de la ventana---------------------------------------------------------
elif [ $opcs = "Cambiar la posicion de los botones" ]
then
clear
bot=`zenity --info --title="P.A.U" --text="Seleccione en que lado quiere que este los botones" \
--list --column="Select" --column="Opciones"  \
--checklist  FALSE"Izquierda" FALSE "Derecha" `
if [ $? -eq 0 ]
then
for botopc in $bot
do
if [ $botopc = "Izquierda" ]
then
zenity --info --title="INFO" --text="Ahora se cambiara los botones"
gconftool-2 --type string --set /apps/metacity/general/button_layout "menu:close,minimize,maximize"
clear
zenity --info --title="INFO" --text="Ya se ha cambiado los botones"
elif [ $botopc = "Derecha" ]
then
zenity --info --title="INFO" --text="Ahora se cambiara los botones"
gconftool-2 --type string --set /apps/metacity/general/button_layout
"close,minimize,maximize:menu"
zenity --info --title="INFO" --text="Ya se ha cambiado los botones"
clear
fi
done
fi
# Aqui empieza la opcion del conky--------------------------------------------------------------------------------------
elif [ $opcs = "Conky" ]
then
clear
zenity --info --title="INFO" --text="Ahora mismo empezara la instalacion de conky"
sudo aptitude install conky
clear
sleep 2
zenity --info --title="INFO" --text="Ya se ha instalado el conky"
cok=`zenity --title="P.A.U" --text="Seleccione si quiere una configuracion predeterminada o una por ti" \
--list --column="Select" --column="Opciones" \
--checklist FALSE"Predeterminada" FALSE"Propia" `
if [ $? -eq 0 ]
then
for cokopc in $cok
do
if [ $cokopc = "Predeterminada" ]
then
clear
zenity --info --title="Info" --text="se creara los archivo necesarios"
cd /home/$USER/
touch .conkyrc #Aqui se crea el archivo para el conky
echo "" >> .conkyrc
elif [ $cokopc = "Propia" ]
then
zenity --info --title="INFO" --text="Ojala que encuentras\n que te agrade"
clear
fi
done
fi
# Aqui empieza otros----------------------------------------------------------------------------------------------------
if [ $opcs = "Otros" ]
then
clear
ot=`zenity --title="P.A.U" --text="Has entrado en el menu de otros.\n Aqui van diferentes opciones" \
--list --column="Select" --column="Opciones" \
--checklist FALSE "Iconos del menu sistema" FALSE "Quitar sonido de inicio" FALSE "Poner el sonido de inico" \
FALSE "Instalar Sharpfonts" FALSE "Arreglar el 'apt-get update' con los repositorios de Google" \
FALSE "Resetear el 'apt-get update'" FALSE "Borrar Ubuntu-docs" FALSE "Instalar Ubuntu-docs"`
if [ $? -eq 0 ]
then
for otopc in $ot
do
if [ $otopc = "Iconos del menu sistema" ]
then
gconftool-2 --type Boolean --set /desktop/gnome/interface/menus_have_icons True && killall gnome-panel
zenity --info --title="INFO" --text="Ya se han puesto los iconos del menu"
elif [ $otopc = "Quitar sonido de inicio" ]
then
sudo -u gdm gconftool-2 --set /desktop/gnome/sound/event_sounds --type bool false
                sudo -u $ON_USER "DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS gconftool-2 --set /desktop/gnome/sound/event_sounds --type bool false
zenity --info -title="INFO" --text="Ya se ha quitado el sonido del inicio"
elif [ $otopc = "Poner el sonido de inicio" ]
then
sudo -u gdm gconftool-2 --set /desktop/gnome/sound/event_sounds --type bool true
                sudo -u $ON_USER "DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS gconftool-2 --set /desktop/gnome/sound/event_sounds --type bool true
zenity --info --text="Ya se ha puesto el sonido del inicio"
elif [ $otopc = "Instalar Sharpfonts" ]
then
zenity --info --text="Esto tardara dependiendo de tu conexion"
cd /tmp/
zenity --info --text="Ahora se instalara cabextract"
sudo apt-get -y install cabextract
zenity --info --text="Ya se ha instalado.\n Ahora se descargar lo necesirio"
wget http://sharpfonts.com/fonts/andale32.exe
                wget http://sharpfonts.com/fonts/arial32.exe
                wget http://sharpfonts.com/fonts/arialb32.exe
                wget http://sharpfonts.com/fonts/comic32.ex
                wget http://sharpfonts.com/fonts/courie32.exe
                wget http://sharpfonts.com/fonts/georgi32.exe
                wget http://sharpfonts.com/fonts/impact32.exe
                wget http://sharpfonts.com/fonts/tahoma32.exe
                wget http://sharpfonts.com/fonts/times32.exe
                wget http://sharpfonts.com/fonts/trebuc32.exe
                wget http://sharpfonts.com/fonts/verdan32.exe
                wget http://sharpfonts.com/fonts/webdin32.exe
sudo mkdir /usr/share/fonts/truetype/
cabextract -d /usr/share/fonts/truetype/ andale32.exe arial32.exe arialb32.exe comic32.exe courie32.exe georgi32.exe impact32.exe tahoma32.exe times32.exe trebuc32.exe verdan32.exe webdin32.exe
wget http://sharpfonts.com/fontconfig.tbz
                tar xvjpf fontconfig.tbz -C /etc/fonts/
                rm -r /tmp/*.exe
                rm /tmp/fontconfig.tbz
zenity --info --text="Ya se ha completado"
elif [ $otopc = "Arreglar el 'apt-get update' con los repositorios de Google" ]
then
echo "Acquire::http::Pipeline-Depth \"0\";" | sudo tee -a /etc/apt/apt.conf.d/90localsettings > /dev/null
zenity --info --text="Ya se ha completado"
elif [ $otopc = "Resetear el 'apt-get update'"]
then
sudo rm /etc/apt/apt.conf.d/90localsettings_back; sudo cp /etc/apt/apt.conf.d/90localsettings /etc/apt/apt.conf.d/90localsettings_back; cat /etc/apt/apt.conf.d/90localsettings_back | sudo sed -e '/^Acquire::http::Pipeline-Depth.*/d' > /etc/apt/apt.conf.d/90localsettings; sudo rm /etc/apt/apt.conf.d/90localsettings_back
zenity --info --text="Ya se ha completado"
elif [ $otopc = "Borrar Ubuntu-docs" ]
then
zenity --info --text="Esto te liberara 256MB"
sudo apt-get -y remove ubuntu-docs
zenity --info --text="Ya se ha completado"
elif [ $otopc = "Instalar Ubuntu-docs" ]
then
sudo apt-get -y install ubuntu-docs
zenity --info --text="Ya se ha completado"
fi
done
fi
fi
# Aqui es donde empieza el menu de programas---------------------------------------------------------------------------
elif [ $opcs = "Instalar Programas" ]
then
clear
echo ""
echo "¿Que programa deseas instalar?"
echo""
echo""
echo " 1-Wine. Programa para usar programas nativos en Windows"
echo " 2-Gimp. Editor Grafico"
echo " 3-Pidgin. Cliente de Mensajeria"
echo " 4-Chromium. Navegador"
echo " 5-Compizfusion. Programa para poner efectos en Ubuntu"
echo " 6-AWN. Dock de navegacion"
echo " 7-Docky. Idem"
echo " 8-GnomeDo. Idem"
echo " 9-Inkscape. Editor de grafico vectoriales"
echo " 10-Eclipse. Plataforma de desarrollo de programas"
echo " 11-Netbeans. Idem"
echo " 12-Vim. Editor de archivos en consola"
echo " 13-Skype"
echo " 14-K3b. Programa para grabar CD/DVD"
echo " 15-Mozilla Thunderbird."
echo " 16-Amule. Emule para la version de Linux"
echo " 17-Tucan Manager (Alternativa a JDowloader)"
echo " 18-Vlc. Reproductor de videos"
echo " 19-Comix. Reporductor de comics"
echo " 20-K3b con las librerias de KDE"
echo " 21-JDownloader"
echo " 22-Amarok. Reproductor muy bueno"
echo " 23-Atool. Descomprimir y comprimir desde la consola"
echo " 24-Formatos comprimidos"
echo " 25-emesene. Cliente de Mensajeria"
echo " 26-Gparted. Para hacer particiones"
echo " 27-Google Chrome.Navegador"
echo " 28-Virtualbox"
read opcs
for i in $opcs ; do
echo ""
echo "Has elegido la opcion $i"
if [ $i = "1" ]
then
sudo apt-get -y install wine
clear
elif [ $i = "2" ]
then
sudo sh -c "echo 'deb http://ppa.launchpad.net/matthaeus123/mrw-gimp-svn/ubuntu lucid main' >> /etc/apt/sources.list" && sudo apt-key adv –recv-keys –keyserver keyserver.ubuntu.com 405A15CB && sudo apt-get update && sudo apt-get -y install gimp
clear
elif [ $i = "3" ]
then
sudo add-apt-repository ppa:pidgin-developers && sudo apt-get update && sudo aptitude -y install pidgin
clear
elif [ $i = "4" ]
then
sudo add-apt-repository ppa:chromium-daily/ppa && sudo apt-get update && sudo apt-get -y install chromium-browser chromium-browser-l10n
clear
elif [ $i = "5" ]
then
sudo add-apt-repository ppa:compiz && sudo apt-get update && sudo aptitude -y install simple-ccsm compizconfig-settings-manager emerald && install fusion-icon
clear
elif [ $i = "6" ]
then
sudo apt-get update && sudo apt-get -y install avant-window-navigator awn-extras-applets
clear
elif [ $i = "7" ]
then
sudo add-apt-repository ppa:ricotz/testing && sudo apt-get update && sudo apt-get -y install docky
clear
elif [ $i = "8" ]
then
sudo add-apt-repository ppa:do-core && sudo apt-get update && sudo apt-get -y install gnome-do gnome-do-docklets gnome-do-plugins
clear
elif [ $i = "9" ]
then
sudo aptitude -y install inkscape
clear
elif [ $i = "10" ]
then
sudo aptitude -y install eclipse
clear
elif [ $i = "11" ]
then
sudo aptitude -y install netbeans
clear
elif [ $i = "12" ]
then
sudo aptitude -y install vim
clear
elif [ $i = "13" ]
then
cd /tmp      
wget http://download.skype.com/linux/skype-ubuntu-intrepid_2.1.0.81-1_${arch}.deb                          
sudo dpkg -i --force-all skype-ubuntu-intrepid_2.1.0.81-1_${arch}.deb                          
sudo apt-get -y --force-yes install -f -y                          
rm skype-ubuntu-intrepid_2.1.0.81-1_${arch}.deb
clear
elif [ $i = "14" ]
then
sudo aptitude -y install k3b
clear
elif [ $i = "15" ]
then
sudo aptitude -y install  mozilla-thunderbird thunderbird-locale-es-es
clear
elif [ $i  = "16" ]
then
sudo aptitude -y install amule
clear
elif [ $i = "17" ]
then
sudo aptitude -y install tucan
clear
elif [ $i = "18" ]
then
sudo add-apt-repository ppa:c-korn && sudo apt-get update && sudo apt-get -y install vlc
clear
elif [ $i = "19" ]
then
sudo aptitude -y install comix
clear
elif [ $i = "20" ]
then  
sudo aptitude install k3b && sudo aptitude -y install kde-i18n-es k3b-i18n
clear
elif [ $i = "21" ]
then
wget http://212.117.163.148/jd.sh
chmod +x jd.sh
sh jd.sh
java -jar ~/.jd/JDownloader.jar
clear
elif [ $i = "22" ]
then
sudo add-apt-repository ppa:kubuntu-ppa/backports && sudo apt-get update && sudo apt-get -y install amarok
clear
elif [ $i = "23" ]
then
sudo aptitude -y install atool
clear
elif [ $i = "24" ]
then
sudo aptitude -y install rar p7zip-full unace unzip file-roller
clear
elif [ $i = "25" ]
then
sudo apt-get -y install emesene
clear
elif [ $i = "26" ]
then
sudo aptitude -y install gparted
elif [ $i = "27" ]
then
sudo add-apt-key ppa:chromium-daily/ppa && sudo apt-get update && sudo apt-get -y install chromium-browser
clear
elif [ $i = "28" ]
then
zenity --info --text="Ahora empezara su instalacion"
cd /etc/apt/
echo "deb http://download.virtualbox.org/virtualbox/debian karmic non-free" >> sources.list
wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -
zenity --info --text="Ahora comprobara que tipo de sistema usa"
if [ "i686" = `uname -m` ]
then
zenity --info --text="Ahora empezara la instalacion.\n Espera a que salga el mensaje de info"
cd /home/$USER/
wget http://download.virtualbox.org/virtualbox/3.1.6/virtualbox-3.1_3.1.6-59338_Ubuntu_karmic_${arch}.deb
dpkg -i --force-all virtualbox-3.1_3.1.6-59338_Ubuntu_karmic_${arch}.deb
sudo apt-get install -f -y
rm virtualbox-3.1_3.1.6-59338_Ubuntu_karmic_${arch}.deb
zenity --info --text="Ya ha terminado su instalacion"
else
zenity --info --text="Ahora empezara la instalacion.\n Espera a que salga el mensaje de info"
cd /home/$USER/
wget http://download.virtualbox.org/virtualbox/3.1.6/virtualbox-3.1_3.1.6-59338_Ubuntu_karmic_${arch}.deb
dpkg -i --force-all virtualbox-3.1_3.1.6-59338_Ubuntu_karmic_${arch}.deb
sudo apt-get install -f -y
rm virtualbox-3.1_3.1.6-59338_Ubuntu_karmic_${arch}.deb
zenity --info --text="Ya ha terminado su instalacion"
fi
fi
done
fi
done
fi
fi
done
elif [ $USER != root ]
then
zenity --warning --title="No eres root" --text="No eres root/n inicie la aplicacion cuando seas root"
exit
fi


Aconsejo copiarlo al gedit para entenderlo siempre