I have 2 python scripts a.py and b.py and I want to write a bash script that will load a.py and not run b.py until a.py is done doing it\'s thing. simplistically
prompt_err() {
echo -e "\E[31m[ERROR]\E[m"
}
prompt_ok() {
echo -e "\E[32m[OK]\E[m"
}
status() {
if [ $1 -eq 0 ]; then
prompt_ok
else
prompt_err
exit -1
fi
}
a.py
status
b.py
You can use the check code above.
If 'a.py' is done only then it will process 'b.py', otherwise it will exit with an 'Error'.
This by default will already run one after the other.
To check that python a.py
completed successfully as a required condition for running python b.py
, you can do:
#!/usr/bin/env bash
python a.py && python b.py
Conversely, attempt to run python a.py
, and ONLY run 'python b.py' if python a.py
did not terminate successfully:
#!/usr/bin/env bash
python a.py || python b.py
To run them at the same time as background processes:
#!/usr/bin/env bash
python a.py &
python b.py &
(Responding to comment) - You can chain this for several commands in a row, for example:
python a.py && python b.py && python c.py && python d.py