Este é um procedimento geral que você pode usar para praticamente qualquer shell. De qualquer forma, você precisa saber em qual shell o usuário normalmente efetuaria login:
path="$(grep $USER /etc/passwd | cut -d ':' -f 7)"
shell="$(basename -- "$path")"
Então você precisa descobrir quais arquivos de ponto esse shell normalmente lê:
man $shell
Um atalho que pode funcionar é listar os arquivos de ponto que contêm o nome do shell:
ls ~/.*${shell}*
Se você deseja verificar se um dos arquivos é realmente lido durante o login, basta imprimir o nome do arquivo em cada um deles, por exemplo:
echo .bashrc
Ao fazer login, você deve ver quais arquivos estão sendo lidos e pode decidir qual deles modificar. Cuidado para não tentar usar algo echo "$0"
semelhante, pois o valor de $0
depende de como o shell processa arquivos de ponto e pode ser enganoso.
Quando se trata de declarar a variável "permanentemente", observe que isso se estende apenas à sessão. Não há como acessar o valor de uma variável sem uma sessão, portanto, ela não tem significado fora de uma. Se você quer dizer "somente leitura", isso depende do shell e no Bash você pode usar:
declare -r VAR
se já tiver um valor, ou
declare -r VAR=value
atribuí-lo ao mesmo tempo. Nem todas as conchas têm esse recurso.
Para declarar uma variável na maioria dos shells, use um nome de variável ( [A-Za-z_][A-Za-z0-9_]*
), seguido por um sinal de igual (e sem espaços ao redor do sinal de igual), depois um valor (de preferência citado, a menos que o valor seja simples [A-Za-z0-9_]+
). Por exemplo:
name="John Doe"
ip=127.0.0.1
HORRIBLE=1