example español check_output python linux

español - subprocess python example



¿Cuál es el valor de retorno de subprocess.call()? (3)

No estoy seguro de lo que significa el valor de retorno de subprocess.call() .

  • ¿Puedo asumir con seguridad que un valor cero siempre significará que el comando se ejecutó correctamente?

  • ¿Es el valor de retorno equivalente al estado de salida de un comando de shell?

Por ejemplo, ¿funcionará el siguiente fragmento de código para prácticamente cualquier comando en Linux?

cmd = "foo.txt > bar.txt" ret = subprocess.call(cmd, shell=True) if ret != 0: if ret < 0: print "Killed by signal", -ret else: print "Command failed with return code", ret else: print "SUCCESS!!"

Por favor iluminame :-)


Es el código de retorno, pero tenga en cuenta que depende del autor del subproceso lo que significa el código de retorno. Existe una fuerte cultura de 0 que significa éxito, pero no hay nada que lo imponga.


Estás a merced de las órdenes que llamas. Considera esto:

test.py

#!/usr/bin/env python success=False if not success: exit()

Luego, ejecutar su código (con cmd = ''test.py'') resultará en ÉXITO !!

simplemente porque test.py no cumple con la convención de devolver un valor distinto de cero cuando no tiene éxito.