Usamos acima o comando echo $PATH para ver o valor da variável PATH. A shell guarda nestas variáveis informações sobre o sistema, tais como nome do sistema, nome do usuário logado e seu ID (o chamado UID), o diretório padrão do usuário e o caminho de busca (PATH) para executáveis.
Para ver uma lista com todas as variáveis do sistema podemos usar o comando set sem nenhum parâmetro (o resultado abaixo mostra apenas as primeiras linhas.)
set também pode ser usado para alterar valores de variáveis.
Além das variáveis do sistema também podemos inserir variáveis do usuário, que permitem armazenar e recuperar informações para uso dentro do script. O nome das variáveis podem conter até 20 caracteres, dígitos ou underline ( _ ), diferenciadas as letras maiúsculas das minúsculas. Valores são atribuídos com o sinal de igual (=), não sendo permitido o uso de espaços entre o nome, o sinal de igual e o valor. Seguem alguns exemplos:
O tipo de dados (no caso acima inteiro e strings) é determinado automaticamente pela shell. Uma variável é armazenada apenas dentro do script que a definiu e são apagadas ao término do script. Seu valor é referenciado por meio de um cifrão, $, como ilustrado no script abaixo.
Ao ser executado este script produz a seguinte saída:
(1) Operadores: Observe que o cifrão $ foi usado apenas para a recuperação do valor da variável e não faz parte do nome da variável.
Já vimos acima alguns operadores em funcionamento: o $ foi usado para a recuperação do valor da variável é um deles, o sinal de igual (=) para a atribuição é outro. Veremos ainda que o mesmo sinal (por exemplo =) pode ter outro significado em outro contexto. O operador backtick (`), que veremos em seguida, é outro exemplo. Backtick é o acento grave ou crase, que no teclado em português do Brasil, fica acima do acento agudo, à esquerda da letra P. Para obter um acento puro, sem estar sobre uma letra, pode ser necessário digitar a tecla duas vezes.
Backtick é um operador muito útil que quase sempre aparece dentro de scripts. Ele permite que se atribua a saída de um comando a uma variável.
A sintaxe para o uso do operador é a seguinte:
variavel=`comando` ou variavel=$(comando),
onde a segunda é uma forma alternativa2 para se obter o mesmo efeito.
A shell executa o comando e depois atribui o resultado à variável. O seguinte exemplo mostra este uso:
O script acima exibe a expressão: Meus arquivos e diretorios: Desktop Django Documentos Downloads Pictures Programas Public Templates Ubuntu One Videos, ou seu equivalente, dependendo dos diretórios encontrados.
Uma vez que a variável contém o resultado obtido pelo comando, este resultado pode ser manipulado à vontade. No exemplo seguinte a variável hoje contém a data no formato "ddmmaa", que é usada para compor o nome do arquivo log_ddmmaa que conterá uma lista de arquivos encontrados no diretório home/Documentos.
Suponha que este script seja executado em 28 de junho de 2012. A variável hoje recebe o valor hoje="280612". O parâmetro "+%d%m%y" instrui date a formatar sua saída listando dia-mes-ano, com dois dígitos e sem separador. A última linha executa o comando ls sobre o diretório ~/Documentos. As chave ou opção - a (ou --all) produz uma saída com todos os arquivos (inclusive iniciados por . ou ocultos) e -l uma lista completa incluindo permissões, usuário, grupo, tamanho, data de modificção e nome do arquivo. No final da execução o arquivo log_280612 deverá ser encontrado dentro do diretório atual contendo esta lista. Encontramos aqui, mais uma vez, o redirecionamento (>), que pega a saída do comando ls e o armazena em um arquivo.
Redirecionamento:
| comando > arquivo | Armazena a saída de comando em arquivo |
| comando >> arquivo | Acrescenta a saída de comando ao arquivo |
| comando < arquivo | Usa o conteúdo de arquivo como parâmetro de comando |
Leia no site: | Devemos Acreditar na Ciência? | Hipótese, Modelo e Teoria em Física | Cosmologia - Estrutura do Universo | História da Pessoa com Deficiência |