我echo $0
在tty1中键入命令,它返回了-bash
,为什么不bash
呢?
它表明它bash
是作为登录Shell启动的。从man bash
,部分INVOCATION
(重点是我的):
A login shell is one whose first character of argument zero is a -, or
one started with the --login option.
...
When bash is invoked as an interactive login shell, or as a non-inter‐
active shell with the --login option, it first reads and executes com‐
mands 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. The --noprofile option may be used when the
shell is started to inhibit this behavior.
When a login shell exits, bash reads and executes commands from the
file ~/.bash_logout, if it exists.
$0
,当然是参数零。
在Ubuntu中,通常.profile
存在.bash_profile
并且.bash_login
不存在。因此,登录外壳读取.profile
。
也可以看看:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句