On Sat, Jan 17, 2015 at 2:02 PM, John H Palmieri <[email protected]> wrote: > > > On Saturday, January 17, 2015 at 10:28:22 AM UTC-8, Jernej Azarija wrote: >> >> Hello, >> >> I have to use Sage from an external comand and in order to do so I'll need >> to rely on the exit status given by Sage. Considering a trivial example >> >> ============= >> $ cat foo.sage >> exit(0) >> ============= >> >> >> I get the following behaviour >> >> >> ============= >> $ sage la.sage >> 0 >> $ echo $? >> 1 >> ============= >> >> There are two things I am confused with here. >> >> 1. Why do we print 0? >> >> >> 2. Why is the exit status 1 - indicating an error by UNIX standards? >> >> >> Is there any reason behind this? If yes , what would be the best way to >> force my own exit status so that I can interpret the execution of Sage from >> an external program? > > > The underlying problem is that the "exit" function in Python doesn't accept > any arguments, so "exit(0)" raises an error when you run it in Sage. This is > why the exit status is nonzero. If your script had the line "exit()", it > would run as expected. Given that, I'm not sure why it prints 0. If you do > "exit(3)", it will print 3 instead.
You probably want sys.exit, which does take an exit status as an integer. -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.
