rsync
是一个登录到其他机器的非交互式程序。它不应该需要用于交互式 shell 会话的 init 文件,而它绝对需要用于登录 shell 的 init 文件。或者我是这么认为的。
但.bashrc
被读取并且.profile
不被读取(除非我让它.bashrc
自己被读取.profile
)。为什么?
答案1
rsync
本身确实不是读取你的~/.bashrc
。但它会调用ssh targethost rsync ...
,这将连接到sshd
,而 又会启动你的 shell ( bash
)。
为什么bash
现在读作你的,~/.bashrc
解释如下为什么当我通过 ssh 运行非交互式命令时,.bashrc 会被读取