Don Faulkner Asked: 2010-08-07 18:14:26 +0800 CST2010-08-07 18:14:26 +0800 CST 2010-08-07 18:14:26 +0800 CST bashrc 还是 bash_profile? 772 我知道两个 bash 登录脚本之间的区别: .bashrc仅由“非登录”外壳运行。 .bash_profile(或.bash_login或.profile)由“登录”shell 执行。 有没有人有一些很好的例子来说明哪些东西更适合仅登录执行,这样我只会把它们放进去.bash_profile,但它们真的没有意义.bashrc吗? (我知道我们大多数人都.bashrc来自.bash_profile,所以相反的问题似乎没有多大意义......) scripts startup bash 2 个回答 Voted Best Answer Stefan Lasiewski 2010-08-07T20:20:28+08:002010-08-07T20:20:28+08:00 由于 a.bashrc用于非登录 shell,因此我避免使用任何回显到屏幕的命令。我也遇到过 echo 语句.bashrc会导致 sftp 和 rsync 命令失败(也可能是 scp 命令)的经验。 # Print some information as we log in # -s: OS Name -n: Node name -r: OS Release uname -snr uptime 此外,您通常不会从非交互式 shell 运行 ssh-agent。所以我有这个.bash_profile。 if [ -f ~/.ssh/ssh-agent ]; then . ~/.ssh/ssh-agent; fi Ralf 2010-09-07T10:31:23+08:002010-09-07T10:31:23+08:00 Byobu 是一个很好的例子,说明你永远不应该在.bashrc. 否则,它将在每个“虚拟终端”中递归地运行自己;-) 不过你可以试试看,挺好玩的。 这就是为什么你把它放进去的原因.profile,所以 byobu(它实际上只是屏幕的一个包装器)只在登录时加载一次。byobu 本身可以启动新的交互式 bash 会话。
由于 a
.bashrc
用于非登录 shell,因此我避免使用任何回显到屏幕的命令。我也遇到过 echo 语句.bashrc
会导致 sftp 和 rsync 命令失败(也可能是 scp 命令)的经验。此外,您通常不会从非交互式 shell 运行 ssh-agent。所以我有这个
.bash_profile
。Byobu 是一个很好的例子,说明你永远不应该在
.bashrc
.否则,它将在每个“虚拟终端”中递归地运行自己;-)
不过你可以试试看,挺好玩的。
这就是为什么你把它放进去的原因
.profile
,所以 byobu(它实际上只是屏幕的一个包装器)只在登录时加载一次。byobu 本身可以启动新的交互式 bash 会话。