[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