How to call a shell script from python code?
How to call a shell script from python code?
I know this is an old question but I stumbled upon this recently and it ended up misguiding me since the Subprocess API as changed since python 3.5.
The new way to execute external scripts is with the run function, which runs the command described by args. Waits for command to complete, then returns a CompletedProcess instance.
import subprocess
subprocess.run(['./test.sh'])
In case the script is having multiple arguments
#!/usr/bin/python
import subprocess
output = subprocess.call(["./test.sh","xyz","1234"])
print output
Output will give the status code. If script runs successfully it will give 0 otherwise non-zero integer.
podname=xyz serial=1234
0
Below is the test.sh shell script.
#!/bin/bash
podname=$1
serial=$2
echo "podname=$podname serial=$serial"
If your shell script file does not have execute permissions, do so in the following way.
import subprocess
subprocess.run(['/bin/bash', './test.sh'])