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 -- http://mail.python.org/mailman/listinfo/python-list