Running Python scripts from BASH
James Stroud
jstroud at mbi.ucla.edu
Tue Feb 27 18:47:25 EST 2007
Ishpeck wrote:
> I'm using Python to automate testing software for my company. I
> wanted the computers in my testing lab to automatically fetch the
> latest version of the python scripts from a CVS repository and then
> ask a local database server which of the scripts to run.
>
> I built the following:
>
> #!/bin/bash
> # Batcher will run the specified scripts.
>
> cvs update
>
> while true
> do
> # This part makes sure that
> # every hour or so, we get the latest
> # snapshot of the suite from CVS.
> if [ $(date +%M) = 0 ]; then
> cvs update
> sleep 360
> fi
> # Then we grab the name of
> # a randomly-selected script
> i=$(python randomRun.py)
> # If the return-value of randomRun.py
> #is empty, we don't run it.
> if ["$i"=""]; then
> echo Not running anything
> sleep 3600
> # If randomRun doesn't return
> # empty, we run the script that it prints.
> else
> python "$i";
> sleep 2
> fi
> done
>
>
> --------- END BASH FILE --------
>
> For debugging purposes, you can just build "randomRun.py" to do the
> following:
>
> print "randomRun.py"
>
> It's silly but works.
>
> Whenever I run this script, Python decides that it doesn't like the
> way BASH feeds it the name of the script. I get the following
> message:
>
> ': [Errno 22] Invalid argumentopen file 'foo.py
>
> I dunno. Maybe this is a better question for a BASH-related group.
> How do I get around this?
>
Perhaps code the whole thing in python and not bash/python. Don't send a
boy in to do a man's job.
All you need to remember is
import os
[....]
os.system('whatever command here')
James
More information about the Python-list
mailing list