Below scrip reads lines of commands to execute from a cmdAll.txt. Is there a way that I merge the command file into the script file itself. I remember I have seen such data blocks using <<EOF somewhere but I am not sure how to do it.
myScript.py file:
#!/usr/bin/python
i=1
import enms
s = enms.open()
with open('cmdAll.txt') as f:
for cmd in f:
r = s.terminal().execute(cmd)
filename = "output_%d.txt" % i
fp = open(filename, 'w')
for line in r.get_output():
print line
fp.write(line + "n")
fp.close()
i+=1
f.close()
enms.close(s)
cmdAll.txt file:
cmget get * en.(enbid) -t
cmget get * gn.(gnbid) -t
cmget get * gnssinfo.(latitude,longitude) --table
cmget get * GpsSyncRef.(latitude,longitude) --table
Advertisement
Answer
I think the <<EOF
bit you saw somewhere had to do with running Python in a shell script in a shell script, but you’re asking for the inverse. You want your shell commands to live in your python script.
If you’re not going to read the commands from a .txt file, and you would rather they live in the script, you might as well just make it clean and make a list out of them.
import enms
cmds = [
"cmget get * en.(enbid) -t",
"cmget get * gn.(gnbid) -t",
"cmget get * gnssinfo.(latitude,longitude) --table",
"cmget get * GpsSyncRef.(latitude,longitude) --table"
]
s = enms.open()
for cmd in cmds:
r = s.terminal().execute(cmd)
If you prefer the commands exist as a single string, you could do something like this, where you are splitting on newlines. Just as Eric Jin suggested
import enms
comds = '''cmget get * en.(enbid) -t
cmget get * gn.(gnbid) -t
cmget get * gnssinfo.(latitude,longitude) --table
cmget get * GpsSyncRef.(latitude,longitude) --table'''
s = enms.open()
for cmd in cmds.split("n"):
r = s.terminal().execute(cmd)