[readme] Update shell profile file install notes #2241
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.
which will return the default shell.
updating the correct profile file.
NOTES ON CHANGES:
This documentation change is to help users who are finding that the install script is not updating the correct shell profile file.
$SHELL
will return the path to the default shell used, which will set the environment variables used by the install script to decide which profile file to update. There are reports of users not sure why their preferred profile file is not being updated here #2196.I suspect that many of these are from people running the given curl command, which currently pipes the install script into bash explicitly, even if the user has zsh or another shell as their default. This will especially bite MacOS Catalina users who now have zsh as their default shell.
There is also a way for users to explicitly set which profile file to change by the install script, which some users have asked for not knowing it already exists. Here #2188, #869 . This lets them know how to do that.
CAVEATS:
I would prefer to use an variable like
$0
instead of$SHELL
as$SHELL
does not return the currently used shell, but the default shell. The reason why$0
can't be used is that it returns the current shell with a-
in front of it. Once you switch to another shell and then back, the-
is gone, but its there for all uses before switching to another shell and back.$SHELL
however is better than the current example which statesbash
explicitly.Also, it would be better for the install script to be a smarter about which profile file to change. Right now it is using the existence of
$BASH_VERSION
,.bashrc
,.bash_profile
,$ZSH_VERSION
,.zshrc
, and then.profile
, in that order, to decide. It could instead look at which shell is being used and then set the corresponding profile file, through something like$SHELL
or$0
. I'm not versed in shell script so will leave those changes to someone with more experience.