bash
age de forma diferente, seja um shell ou uma linguagem de programação (como perl
ou python
).
Por design, essas configurações em ~/.bash_profile
, ~/.bashrc
, etc. são para os usuários definirem as configurações quando bash
reproduzir o roll de um shell (shell de login, shell interrativo). Pense no ambiente que você tem em um xterm
(shell interrativo) ou em ssh
sessions (shell de login) ou em consoles (shell de login).
Por outro lado, bash
também é uma poderosa linguagem de programação - pense em muitos scripts para gerenciar serviços em systemd
- o que requer um estilo diferente de trabalho. Por exemplo, quando um desenvolvedor escreve um script do sistema ou um programa bash
, ele / ela provavelmente não irá originar o ~/.bash_profile
definido pelo usuário automaticamente. É um programa normal, não um shell. Um programa normal (incluindo programas bash
) naturalmente configuraria a configuração em um ambiente de trabalho atual (shell), mas não os definiria .
Se escrevermos um programa para cron
em bash
- é apenas por acaso que está escrito em bash
; na verdade, podemos escrevê-lo em python
ou perl
ou qualquer outra linguagem de programação - então, podemos ter uma opção para fontes bash
' ~/.bash_profile
(leia: configuração do shell do usuário, que acontece seja a mesma linguagem da sua linguagem de programação):
[ -f /home/user/.bash_profile ] && . /home/user/.bash_profile
No entanto, e se esse usuário em particular não usar bash
como seu shell? Ele / ela pode usar zsh
, 'ksh ,
fish', etc. Então, essa prática realmente não funciona ao escrever programas para uso público.
Então, você pode pesquisar ~/.bash_profile
se achar que funciona. Mas, aqui, não é sobre se somos capazes de criar um arquivo, é sobre como as coisas devem funcionar no sistema: o conceito de design . Resumindo: devemos ver bash
como algo com 2 rolos: linguagem de shell e programação . Então tudo ficará claro, mais fácil de entender.