Replace /bin/bash with /usr/bin/env bash #2341
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This replaces all hardcoded
/bin/bash
paths to/usr/bin/env bash
.When additional arguments are given to bash (e.g.
bash -ue
),/usr/bin/env -S bash -ue
is used instead.The
env -S
functionality requires coreutils 8.30 or newer. This or a newer version of coreutils is present since Ubuntu 19.04, CentOS 8 and many others.This PR also addresses issues with containers and Linux OSes where
/bin/bash
doesn't exist or wherebash
is installed in a different path (e.g. NixOS).The PR should also fix partially or entirely the issues #73 #1598 and #1732
Additional potential issues remain in the files:
Where
/bin/bash
is still hardcoded to work with different images.In fact, some of that code is likely non-functional as, for instance, the latest
busybox
docker image no longer includes/bin/bash
.