user1553248
user1553248

Reputation: 1204

shell script taking input from python program

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

Upvotes: 1

Views: 1022

Answers (4)

glenn jackman
glenn jackman

Reputation: 247142

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])

Upvotes: 0

Eero Aaltonen
Eero Aaltonen

Reputation: 4425

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

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

Upvotes: 0

Alexander Kondratskiy
Alexander Kondratskiy

Reputation: 4275

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

Upvotes: 2

perilbrain
perilbrain

Reputation: 8207

Use this

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

Upvotes: 2

Related Questions