<div class="gmail_quote">2012/8/19 Roman H. Gelbort <span dir="ltr"><<a href="mailto:roman@piensalibre.com.ar" target="_blank">roman@piensalibre.com.ar</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>El 19/08/12 12:41, Mariano Absatz -
      gmail escribió:<br>
    </div><div class="im">
    <blockquote type="cite">
      <div class="gmail_quote">2012/8/19 Mariano Absatz - gmail <span dir="ltr"><<a href="mailto:el.baby@gmail.com" target="_blank">el.baby@gmail.com</a>></span><br>
        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
          Román,
          <div><br>
          </div>
          <div>mal y pronto, lo que yo hago es esto:</div>
          <div><br>
          </div>
          <div><font face="'courier new', monospace">comando_que_quiero_ver_como_sale</font></div>
          <div><font face="'courier new', monospace">RC=$?</font></div>
          <div><font face="'courier new', monospace">if [ $RC -ne 0 ] ;
              then</font></div>
          <div><font face="'courier new', monospace">   echo "se pudrió
              todo"</font></div>
          <div><font face="'courier new', monospace">   exit 1</font></div>
          <div><font face="'courier new', monospace">fi</font></div>
          <div><font face="'courier new', monospace">sigo_mi_script</font></div>
          <span><font color="#888888">
              <div><br>
              </div>
            </font></span></blockquote>
        <div>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. </div>
      </div>
      <br>
    </blockquote>
    <br></div>
    Muchas gracias a todos... me sirvieron mucho los consejos.<br>
    <br>
    Terminó saliendo esto:<br>
    <br>
    func_error()<br>
    {<br>
      if [ "$?" -eq "100" ]; then<br>
        echo -e "\n Hubo un error. Mirar las últimas líneas.\n"<br>
        exit<br>
      fi<br>
    }<br>
    <br>
    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.<br>
    <br>
    Por eso en el if pregunto si el exitcode es 100.<br>
    <br>
    Al hacer una función, ahorro muchas líneas porque son muchos los
    paquetes que tengo para instalar. Solamente necesito poner algo
    como:<br>
    <br>
    sudo apt-get install inkscape || func_error<br>
    <br></div></blockquote><div>Genial,</div><div><br></div><div>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.</div><div><br></div><div>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).</div>
<div><br></div><div>Con lo cual, si cambiás el ' -eg "100"' por un ' -gt "0"' vas a poder usar tu función para cualquier comando. </div></div><br clear="all"><div><br></div>-- <br>Mariano Absatz - El Baby<br>
<a href="http://www.clueless.com.ar" target="_blank">www.clueless.com.ar</a><br><br><br>