Estou perdendo a cabeça devido ao IntelliJ não querer confirmar meu código. Eu tinha colocado export GPG_TTY=$(tty)
no meu em .bash_profile
vez do meu .bashrc
; echoing $GPG_TTY
respondeu com o caminho adequado, mas ainda assim continuei recebendo o gpg: failed to sign the data
erro.
Pelo que entendi, .bash_profile
é lido e executado quando o Bash é invocado como um shell de login interativo, enquanto .bashrc
é executado para um shell interativo sem login; $PATH
variáveis devem, portanto, ir para o .bash_profile
...? Ou, pelo menos, assim pensei. Eu gostaria de saber qual é a diferença funcional entre os dois: por que não funcionou no meu perfil, mas funciona no rc?
Solução para um problema: coloque o
export var
into.bashrc
e chame o.bashrc
from.bash_profile
.Sim, a diferença é login versus não login. O
bash
estaria no modo de login, quando você fizer login embash
, por exemplo, por meiossh
de ou em uma máquina não-gui. Mas uma vez que você fez login, todas as novas instâncias do bash seriam iniciadas no modo sem login.Se você tiver uma área de trabalho GUI, fará login no WM e não no arquivo
bash
. Portanto, você nunca teriabash
um modo de login (a menos que você o chame especificamente com uma--login
opção). Portanto, é meio inútil ter.bash_profile
em uma estação de trabalho com GUI.Mas você ainda pode tê-lo, caso você faça login nesse usuário da máquina através do
ssh
, ou seu WM quebrar e você precisa iniciar um procedimento de recuperação.E, claro, a documentação oficial é uma leitura obrigatória: https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Bash-Startup-Files