识别login shell与non-login shell
login shell
可能是以-
开头的
[almalinux@VM-AlmaLinux8-tmpl-wanlinwang ~]$ echo $0
-bash # "-" is the first character. Therefore, this is a login shell.
或者以--login
启动的bash
[almalinux@VM-AlmaLinux8-tmpl-wanlinwang ~]$ echo $0
bash
[almalinux@VM-AlmaLinux8-tmpl-wanlinwang ~]$ ps -p $$ -o cmd
CMD
bash --login
Non-login shell
[almalinux@VM-AlmaLinux8-tmpl-wanlinwang ~]$ echo $0
bash
[almalinux@VM-AlmaLinux8-tmpl-wanlinwang ~]$ ps -p $$ -o cmd
CMD
bash
login shell的初始化过程
根据bash手册(man bash),不管是interactive或是non-interactive的login shell,首先读取/etc/profile文件,然后按顺序开始查找~/.bash_prifile、~/.bash_login、~/.prifile文件,仅读取第一个找到的文件。
当它退出时,会读取~/.bash_logout与/etc/bash.bash_logout文件。文章来源:https://www.toymoban.com/news/detail-844521.html
non-login shell初始化过程
根据bash手册(man bash),interfactive的non-login shell会读取~/.bashrc文件。如果指定了--rcfile <rcfile>
则读取rcfile,而不读取~/.bashrc文件。文章来源地址https://www.toymoban.com/news/detail-844521.html
到了这里,关于bash的login shell与non-login shell,以及各自的初始化过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!