I have a bunch of shell scripts which incorrectly assume /bin/sh
to be equivalent to /bin/bash
. E.g., they have the #!/bin/sh
shebang, but use the source
command instead of .
(dot).
I run Ubuntu 16, where /bin/sh
links to dash
, and thus bash-isms are not supported.
I need to run the scripts periodically. Also, from time to time I will need to update them from the original author, who is not into fixing this particular bug.
I would like to avoid fixing all these files (there are a bunch of them, they are not mine, and I'll loose all the changes after update). Also, I would like to avoid making global changes to system, since it might potentially break other scripts.
Is there a way to somehow create a (temporary or not) environment with /bin/sh
pointing to bash, to be used for these scripts, while not touching the global system /bin/sh
?
Best Answer
You can easily fix them, don't break your system!