Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get Python command line output when called from a bash script

This may be a super simple question. I am calling a Python script on an Lubuntu OS (Cubietruck) via a shell script. This is to automate the process on start up (I want to maintain this process). Is there a simple way to view the output from Python? At the moment the Python script runs in the background, with no terminal. I have some errors that need checking. The script is:

#!/bin/sh
python recordSound.py

Thanks in advance.

like image 337
JJC Avatar asked Jul 10 '14 09:07

JJC


People also ask

How do you call the Python shell from the command line?

To run the Python Shell, open the command prompt or power shell on Windows and terminal window on mac, write python and press enter. A Python Prompt comprising of three greater-than symbols >>> appears, as shown below. Now, you can enter a single statement and get the result.


2 Answers

The proper solution would probably use logging as proposed in a comment.

In the meantime, you have to redirect both the standard output and the standard error stream in order to capture the normal output as wall as any error reported by your script:

#!/bin/sh
python recordSound.py >> logfile.log 2&>1

See one of the many web pages on that topic to explore the various redirection available from a shell script.


In addition, if you need both login and live view on the console, use the tee standard command:

#!/bin/sh
python recordSound.py 2&>1 | tee logfile.log
like image 74
Sylvain Leroux Avatar answered Sep 22 '22 05:09

Sylvain Leroux


Call your script directly. Just like you call bash script with a shebang (#!) you can call your python script with a #!/bin/env python. Then all you need to do is giving executable permission via chmod +x yourscript.py and calling your script directly like an application. This way, you can see the error codes. Another way to do is using logger module, which is great to see tracebacks and debug info.

like image 36
Cediddi Avatar answered Sep 22 '22 05:09

Cediddi