rbenv install: fix substituting $HOME with "~" #2501
Merged
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.
When a version to install was not found, rbenv install is supposed to print instructions like:
Note how we want $HOME to be printed as
~
for readability. This used to work in older bash versions but ceased to work in newer bash.Depending on bash version, the expression
${var/$HOME\//~/}
will not have effect because the "~" character in the replacement expression is expanded.The updated approach is a bit of a mouthful, but it avoids using "~" in a substitution pattern, while also guarding against values of HOME that are blank, values that contain special substitution characters such as
*
, or when HOME is literally just/
.