Shell script: Hello.sh
#!/bin/bash
echo "Enter your name: "
read name
echo "Hello $name"
I want to invoke Hello.sh from within python and fill variable "name" non-interactively. How can it be done?
Not sure how to read your question.
EDIT: Comment was added by the OP: invoke Hello.sh from within python and "fill" name noninteractively
Which changes things, so here is a different answer for the new question:
import subprocess
cmd = '/home/user1/Hello.sh'
proc = subprocess.Popen(cmd, stdin=subprocess.PIPE)
proc.communicate("Fred Bloggs")
I have used the full path to the script, it is safer.
name = raw_input('Enter your name: ')
print 'Hello ', name
Hello.shfrom withinpythonand "fill"namenoninteractively. If so, I believe that the answer John's looking for is to usesubprocessandwriteto thestdinhandle.