由于 IntelliJ 不想提交我的代码,我一直在失去理智。我已经投入export GPG_TTY=$(tty)
了 my.bash_profile
而不是 my .bashrc
; echoing$GPG_TTY
以正确的路径响应,但我仍然不断收到gpg: failed to sign the data
错误消息。
据我所知,.bash_profile
当 Bash 作为交互式登录 shell 调用时读取并执行,而.bashrc
为交互式非登录 shell 执行;$PATH
因此变量应该进入.bash_profile
...?或者,至少,我是这么认为的。我想知道两者之间的功能区别是什么:为什么它在我的个人资料中不起作用,但在 rc 中起作用?
一个问题的解决方法:把 in 放进
export var
去.bashrc
,然后调用.bashrc
from.bash_profile
。是的,区别在于登录与非登录。当
bash
您登录时,将处于登录模式,bash
例如通过ssh
或在非 gui 机器上。但是一旦您登录,所有新的 bash 实例都将以非登录模式启动。如果您有 GUI 桌面,您将登录 WM 而不是
bash
. 所以你永远不会有bash
登录模式(除非你专门用一个--login
选项来调用它)。因此,即使.bash_profile
在带有 GUI 的工作站上也毫无意义。但是您仍然可以拥有它,以防您通过 登录到该机器用户
ssh
,或者您的 WM 中断并且您需要启动恢复程序。当然,官方文档是必须阅读的: https ://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Bash-Startup-Files