我知道两个bash登录脚本之间的区别:
.bashrc只由“非登录”shell运行。
.bash_profile (或.bash_login或.profile)由“登录”shell执行。
有没有人有一些好的例子,说明哪些东西更适合于仅进行登录的执行,比如我只将它们放在.bash_profile中,但在.bashrc中没有真正的意义?
(我知道我们中的大多数人都是从.bashrc那里得到.bash_profile的,所以在相反的问题上似乎没有多大的意义.)
发布于 2010-08-07 04:20:28
由于.bashrc是用于非登录shell的,所以我避免任何响应到屏幕上的命令。我还遇到了一些经验,.bashrc中的echo语句会导致sftp和rsync命令失败(也可能是scp命令)。
# Print some information as we log in
# -s: OS Name -n: Node name -r: OS Release
uname -snr
uptime而且,通常不会从非交互式shell运行ssh代理。所以我在.bash_profile上有这个。
if [ -f ~/.ssh/ssh-agent ]; then . ~/.ssh/ssh-agent; fi发布于 2010-09-06 18:31:23
Byobu是一个很好的例子,你永远不应该把它放在.bashrc中。
否则,它将在其每一个“虚拟终端”中递归运行;-)
不过,你可以试试,这挺有趣的。
这就是为什么您将它放在.profile中的原因,所以byobu (它实际上是一个屏幕的包装器)只在登录时加载一次。而byobu本身可以启动新的交互式bash会话。
https://askubuntu.com/questions/1528
复制相似问题