Running Python scripts from BASH

Ishpeck ishpeck at gmail.com
Tue Feb 27 17:55:40 EST 2007


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?




More information about the Python-list mailing list