Unas cuantas preguntas sobre bash

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

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

leogtz

#10
Los códigos se ponen con la etiqueta GeShi, o con

Editalo.

El problema se relaciona con todos esos IF's que tienes, esos IF's te los puedes ahorrar con "case", adaptalo a case, así no tendrás problemas.

Por otra parte, no le veo una minima de utilidad al código.
Código (perl) [Seleccionar]

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

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

Festor

Cita de: Leo Gutiérrez. en 24 Abril 2010, 21:52 PM
Por otra parte, no le veo una minima de utilidad al código.

Tienes toda la razón ya que para empezar muchas cosas de las que hace ese script se pueden automatizar mediante los metapaquetes oficiales de Ubuntu (vease ubuntu-restricted-extras por ejemplo).

Date cuanta que cuanto mas código tenga más difícil te sera mantenerlo, depurarlo y/o adaptarlo a nuevas versiones de Ubuntu....

P.D. Muevo el tema al foro de Scripting

Afsoon

El case lo adaptare con los programas que tengo, ire quitando los elif y lo ire cerrando como en "clases" para evitar muchos elif y quitar los if del final

Afsoon

Ya he arreglado el error que tenia de que no podia ejecutar el programa, bueno ahora esque hay una opcion que no me ejecuta, es cuando lo selecciono el programa me empieza de nuevo sin ejecutar esa opcion, entonces no se como hacerlo le estuve dando vueltas pero nada, esta es la parte de esa opcion


Código (bash) [Seleccionar]

if [[ $opcs = "Actualizar,Limpiar" ]]
then
upd=`zenity --title="Actualizar" --text="Has seleccionado Actualizar, Limpiar\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 normal.\n O si deseas limpiar los paquetes innecesarios de tu sistema."  \
        --list --column="Select" --column="Opciones" \
            --checklist FALSE "Actualizacion normal" FALSE "Actualizacion sostificada" FALSE "Limpiar Ubuntu"`
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
if [ $updopc = "Limpiar Ubuntu" ]
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"
    fi
if [ $mopc = "NO" ]
then
zenity --info --text="Ahora iras al menu principal"
fi
done
fi
fi
done
fi
fi