Usando variáveis de ambiente

De forma breve e direta veremos como usar as variáveis de ambiente e como estabelecer nossas próprias variáveis. Especialmente indicado para aqueles que iniciam no uso do terminal.

[ Hits: 85.716 ]

Por: Juliao Junior em 22/08/2007


Usando suas próprias variáveis



As variáveis de ambiente podem ajudar bastante em nosso trabalho, economizando um bom tempo. Podem guardar informações que você usa freqüentemente. Podemos usar quaisquer variáveis com quaisquer nomes (contanto que já não estejam em uso, obviamente; ou aquelas que a shell restringe a seu próprio uso). Desta forma, quando quisermos usar o valor de alguma variável, por maior que seja, basta usar a variável para ter seu efeito.

Para criar uma variável de ambiente temporária, basta escrever seu nome e indicar seu valor, como no exemplo abaixo:

$ SALARIOS=/home/pedro/empresa/rh/salarios ; export SALARIOS

O comando 'export' está aí para mandar o valor da variável para a shell de forma que possa ser enviada para outras shell's que você abrir.

Com a variável SALARIOS funcionando você pode ir diretamente ao diretório desejado apenas usando.

$ cd $SALARIOS

Mas há um problema em usar variáveis de ambientes desta forma: no momento que você sair da shell, terá perdido o conteúdo da variável. Portanto, se terá uso contínuo, o melhor a fazer é colocar a variável para funcionar 'permanentemente', deve-se adicionar as variáveis e a designação de seus conteúdos para um arquivo de configuração da bash.

Se você quiser, no exemplo acima, usar outro texto à direita do caminho apontado pela variável SALARIOS, deve fazer uso de chave, como no seguinte exemplo:

$ cd ${SALARIOS}/executivos/televisao

Da forma acima, você estará no diretório '/home/pedro/empresa/rh/salarios/executivos/televisao'.

Página anterior    

Páginas do artigo
   1. Usando as variáveis
   2. Usando suas próprias variáveis
Outros artigos deste autor

Instalação ou Recuperação do GRUB

Guia Introdutório do Linux II

Guia Introdutório do Linux

Processing - Programando para Android e iOS

Processing - Programação para dispositivos móveis

Leitura recomendada

Interfaces Gráficas no Linux

Linux - Só não usa quem não quer

Mamãe, quero Slack! (parte 2)

Instalação básica do Slackware 10 com KDE 3

FreeRADIUS - Noções básicas - Parte I

  
Comentários
[1] Comentário enviado por adrianoturbo em 22/08/2007 - 11:05h

Parabéns brother bem interessante a questão de utilizar as variáveis de ambiente mesmo porque elas ficam armazenadas no terminal facilitando ainda mais a nossa vida ,já pensou ter que ficar redigitando vários comandos ?

Parabéns !
Abraços.

[2] Comentário enviado por elgio em 22/08/2007 - 11:30h

Só uma correção:

HISTFILE: Ok, nome do arquivo do HISTORY
HISTSIZE: Quantidade de comandos guardadas na memória
HISTFILESIZE: Quantidade de comandos armazenadas no arquivo

[3] Comentário enviado por tenchi em 22/08/2007 - 14:25h

Só lembrando que uma variável de ambiente normalmente pode ser utilizada em processos-filho. Para isso, deve-se "exportá-la":
$ export DISPLAY=:0.2

E assim vai...

[4] Comentário enviado por elgio em 22/08/2007 - 14:31h

Que tal um desafio?
Porque a variavel usuario não fica com o valor:

usuario=0
cat /etc/passwd|while read linha
do
if echo $linha|grep -qs root
then
usuario=$linha
echo "Achei root. Var usuario tem $usuario"
break
fi
done
echo "Final do laco. Var usuario tem $usuario"

Podia ter uma sessão aqui no Vol de desafios...
hehehehe
PS: Eu sei a resposta.

[5] Comentário enviado por tenchi em 23/08/2007 - 09:26h

Se é isso que vc quer elgio, substitua o while do tipo:
while read linha
do
(...)
done < <(cat /etc/passwd)

O pipe abre o que chamamos de subshell, e assim vai...

;-)

[6] Comentário enviado por elgio em 23/08/2007 - 09:31h

hehehe. Exato!
Há uns dois anos tomei um pau por causa disto!
Até que descobri que o pipe cria um sub-shell com novas variáveis.

Tche, eu sempre considerei isto meio que um bug do bash, pois é intuitivo tu fazer isto e querer que o resultado seja o esperado. Mas...

[]'s

[7] Comentário enviado por edupooter em 23/08/2007 - 11:18h

Por gentileza,
Como posso usar o resultado do comando "date" no formato hh:mm para comparar esse valor com um intervalo de tempo, como: entre as 23h40 até as 06h00 do outro?

Seria como assim?
#!/bin/sh

if %date >=23:40 && %date <=06:00
then halt
fi

[8] Comentário enviado por tenchi em 23/08/2007 - 13:39h

UHauhau
Elgio, eu aprendi isso esses dias. Já havia visto no curso de bash q tem no site do julioneves (julioneves.com), aí esses tempos atrás ele veio aqui an minah cidade e palestrou um mini-curso. Foi aí que eu realmente entendi como realmente funciona esse negócio....

E edupooter, tente isso:
if (($(date +%H%M)>=2300)) && (($(date +%H%M)<=0600))
then
halt
fi

É meio bizarro mas funciona...

[9] Comentário enviado por elgio em 23/08/2007 - 14:11h

Acho que não funciona.
0500 (cinco da manhã) deveria casar, mas não é MAIOR que 2340.

Trocando o && por || ?

if (($(date +%H%M)>=2340)) || (($(date +%H%M)<=600))
then
halt
fi

Mas ainda não sei. Teria que testar.
Ah, e em operações aritméticas do BASH, se um número começa com 0 é octal!

if (( 11 > 012 )); then echo OK;fi

Vai imprimir OK, porque 012 em octal significa 10 em decimal!!

[10] Comentário enviado por elgio em 23/08/2007 - 14:32h

Testei.

AGORA=$(date "+%k%M"); if (( $AGORA >= 2340 || $AGORA <= 600 )); then echo Bateu; fi

%k retorna sem o ZERO (que iria COMPLICAR). Vai retornar 600 e não 0600
para seis da manhã.

[11] Comentário enviado por tenchi em 23/08/2007 - 16:36h

Hum elgio. essa do octal eu não sabia.. hauahua
Eu nem interpretei a lógica do que ele queria, só passei um jeito de fazer... Mas acabei me ferrando nessa de octal...
- Como que faz para disparar essa arma?
- Ah, é só puxar o gatilho.

HUAHUAHU...

Flw.


[12] Comentário enviado por rsoares10 em 25/07/2014 - 01:15h

Um bom artigo, bem direto e simples. Sou iniciante no mundo Linux e gostaria de saber como faço para tornar as alterações ou a criação de uma variável de ambiente permanente.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts