[ubuntu-ar] Cómo interrumpir un script

Mariano Absatz - gmail el.baby at gmail.com
Thu Aug 23 01:03:49 UTC 2012


2012/8/19 Roman H. Gelbort <roman at piensalibre.com.ar>

>  El 19/08/12 12:41, Mariano Absatz - gmail escribió:
>
> 2012/8/19 Mariano Absatz - gmail <el.baby at gmail.com>
>
>> Román,
>>
>>  mal y pronto, lo que yo hago es esto:
>>
>>  comando_que_quiero_ver_como_sale
>> RC=$?
>> if [ $RC -ne 0 ] ; then
>>    echo "se pudrió todo"
>>    exit 1
>> fi
>> sigo_mi_script
>>
>>  Como dice Eduardo, el "exit", si lo ejecutás desde un script, sale del
> script pero no del shell que lo llamó. Si lo invocás "a mano" desde el
> shell, te lo cierra.
>
>
> Muchas gracias a todos... me sirvieron mucho los consejos.
>
> Terminó saliendo esto:
>
> func_error()
> {
>   if [ "$?" -eq "100" ]; then
>     echo -e "\n Hubo un error. Mirar las últimas líneas.\n"
>     exit
>   fi
> }
>
> Descubrí que el código de salida de apt es 100 cuando hay errores, pero
> que encontrar que un paquete ya está instalado no lo considera error y sale
> con el código 0.
>
> Por eso en el if pregunto si el exitcode es 100.
>
> Al hacer una función, ahorro muchas líneas porque son muchos los paquetes
> que tengo para instalar. Solamente necesito poner algo como:
>
> sudo apt-get install inkscape || func_error
>
> Genial,

el tema es que cada comando utiliza los códigos de error que quiere, con lo
cual la función tiene un uso medio limitado.

En general TODOS los comandos mandan 0 si no hubo errores y algo >0 si hubo
errores. Es razonable, en general, que no se considere un error que no haya
nada que hacer (desde un apt-get install de un paquete que ya está
instalado hasta un ls de un directorio vacío).

Con lo cual, si cambiás el ' -eg "100"' por un ' -gt "0"' vas a poder usar
tu función para cualquier comando.


-- 
Mariano Absatz - El Baby
www.clueless.com.ar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/ubuntu-ar/attachments/20120822/8b1ae40c/attachment.html>


More information about the Ubuntu-ar mailing list