@lucy-itjob
1. The syntax of `brew-link` is `brew link --force openssl`.
2. Force linking `openssl` is intentionally prohibited. You should NOT attempt that. Instead, use the full path `/usr/local/opt/openssl/bin/openssl`.
> Then again, using snake_case for non-env variables would eliminate the need for discerning them altogether.
No, when I talked about discerning I meant programmatic detection and exclusion of non-exported variables, basically
```bash
execution_env=()
for key in HOME SHELL PATH TERM LOGNAME USER "${!HOMEBREW_@}"
do
# ugly, unfortunate consequence of lack of `export -p NAME` in bash's export
[[ "$(declare -p "$key" 2>/dev/null)" =~ ^declare\ -[^\ ]*x[^\ ]*\ ]] || continue
execution_env+=( "${key}=${!key}" )
done
```
(which would exclude ` HOMEBREW_BREW_FILE`, `HOMEBREW_PREFIX`, `HOMEBREW_REPOSITORY` and `HOMEBREW_LIBRARY` as they are not exported), not visual cues for human beings.
> Perhaps it is not, but it seems like it uses a lot of variables very briefly.
Not a valid argument unless you point out specific problems. As for me, I wouldn't use ALL_CAPS for non env vars, but existing style is existing style; other than that I see no problem.
IMO arguing about complexity of a 48 line file is a waste of time. Also, your objections don't seem to belong to this thread, but of course you're entitled to your opinions.
> Why?
They are exported in `brew.sh` to begin with.
```
# Declared in bin/brew
export HOMEBREW_BREW_FILE
export HOMEBREW_PREFIX
export HOMEBREW_REPOSITORY
export HOMEBREW_LIBRARY
```
> And what's the deal with all the other variables in /usr/local/bin/brew that don't begin with HOMEBREW_?
They are not. Variables meant to be exported to environment all begin with `HOMEBREW_`.
> But it does seem needlessly complex?
Not sure what "it" refers to. But what I can tell you is trying to discern which variable is exported and which is not would be needlessly complex.