[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bashrc problem



* Yamada??? <yamoerina@gmail.com> [22-01/12=We 20:10 +0800]:
> Do you mean if .bash_profile exists, .bashrc will be ignored?

Sometimes.  From `man bash`:
  When bash is invoked as an interactive login shell, or as a
  non-interactive shell with the --login option, it first reads
  and executes commands from the file /etc/profile, if that file
  exists.  After reading that file, it looks for ~/.bash_profile,
  ~/.bash_login, and ~/.profile, in that order, and reads and
  executes commands from the first one that exists and is readable.
  [...]
  When an interactive shell that is not a login shell
  is started, bash reads and executes commands from
  /etc/bash.bashrc and ~/.bashrc, if these files exist.

* Yamada??? <yamoerina@gmail.com> [22-01/12=We 19:49 +0800]:
>>> I have a .bashrc file in my home dir, whose content is shown as follows.
>>> But every time I log into the system, I have to source this file by hand.
>>>
>>> $ which scala
>>> /usr/bin/scala
>>>
>>> $ cat .bashrc
>>> #THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
>>> export SDKMAN_DIR="$HOME/.sdkman"
>>> [[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source \
>>>   "$HOME/.sdkman/bin/sdkman-init.sh"
>>>
>>> $ . .bashrc
>>> $ which scala
>>> /home/xxx/.sdkman/candidates/scala/current/bin/scala
>>>
>>> How can I make it take effect automatically after I login the system?

On Wed, Jan 12, 2022 at 8:07 PM Will Mengarini <seldon@eskimo.com> wrote:
>>
>> Check whether you have either ~/.bash_profile or ~/.profile.
>>
>> If ~/.bash_profile, the line
>>   . ~/.bashrc
>> will suffice.
>>
>> If ~/.profile, use
>>   # if running bash
>>   if [ -n "$BASH_VERSION" ]; then
>>       # include .bashrc if it exists
>>       if [ -f ~/.bashrc ]; then
>>           . ~/.bashrc
>>       fi
>>   fi
>> in case you someday want to try other shells.


Reply to: