shell script taking input from python program

2019-08-04 15:00发布

问题:

I have a shell script which runs a python program which has its own parameters:

#!/bin/bash
python blah.py var1 var2
./run key

I need to find a way to retrieve the contents of key from the python program. I have tried just making the python program return the value, and then doing :

key=python blah.py var1 var2

in my shell script, but that didn't work because it stated key was "outside the function".

Thanks in advance

回答1:

Use this

key=`python blah.py var1 var2`
./run $key


回答2:

You can do:

./run $( python blah.py var1 var2 )

The $( ) syntax opens a subshell, and runs the command. The stdout output is then dumped in its place



回答3:

One liner demo:
(ok, so it's two lines)

$ key=`python -c 'print "hi"'`
$ echo $key


回答4:

Another alternative to modifying the python script to output the value of the key variable is to modify the python script to call the run program

import subprocess
# ... calculations, and set the "key" variable ...
subprocess.call(["./run", key])