GNU Screen on Cygwin was not getting my aliases. Searching all over the internet yields that screen runs
~/.bashrc since it is not a “login shell”. This was not happening. Everybody says to add shell -$SHELL to run an interactive shell and that will source your ~/.bash_profile which will usually source ~/.bashrc (as is my case). Now this works, but it does not explain why my ~/.bashrc is not running without shell -$SHELL. What does the documentation say?shell commandSo what is my
Set the command to be used to create a new shell. This overrides the value of the environment variable $SHELL.
$SHELL variable set to?$ echo $SHELL /bin/bashBut if I run /bin/bash and run alias, all my aliases are there. Clearly screen is not doing what it says. So is that it? The documentation is just plain wrong? When I add
shell $SHELL (notice the absence of the ‘-‘) my aliases do show up. But if shell _command_ “overrides the value of the environment variable $SHELL” wouldn’t shell $SHELL do nothing? Yet it does. It fixes my problem. Screen runs ~/.bashrc where it otherwise does not.In summary:
- with nothing in
~/.screenrc: neither~/.bashrcnor~/.bash_profilerun shell $SHELL: only~/.bashrcis run (non-login shell)shell -$SHELL:~/.bash_profileis run, which typically also sources~/.bashrc(login shell)- the GNU screen documentation is wrong. Or at least, unclear.
No comments:
Post a Comment