você está aqui: Home  → Colunistas  →  Cantinho do Shell

 

Atribuição de Valores a Variáveis em Shell Scripts

Por Rubens Queiroz de Almeida

Data de Publicação: 15 de Dezembro de 2006

Variáveis são sequências de letras, digitos ou underscores, começando com uma letra ou underscore "_".

A atribuição de valor a uma variável irá depender da shell sendo utilizada. Na Bourne shell e compatíveis (sh), atribui-se o valor a uma variável da seguinte forma:

  DATE=6jun60

À variável DATE foi atribuído o valor 6jun60.

Outra característica extremamente útil é atribuir o valor de comandos a variáveis. Por exemplo, suponhamos que queiramos que a variável DATE assuma o valor da data corrente, no formato mmddyy:

  DATE=`date +%m%d%y`

O comando date, como especificado acima, irá retornar o valor 052706, onde 05 indica o mês de maio, 27 o dia do mês e 06 o ano.

Importante notar as aspas invertidas "`". Ao se delimitar um comando por aspas invertidas você está indicando que está interessado no resultado do comando, que por sua vez será atribuído à variável.

Por exemplo, se desejassemos enviar uma mensagem a todos os usuários de determinado computador:

  #!/bin/sh
  
  for user in `awk -F: '{print $1}' /etc/passwd`
  do
  	mail -s "Aviso Importante" $user < mensagem.importante
  	echo $user
  done 

O shell script acima, irá obter, com o auxílio do programa awk, uma listagem de todos os usuários da máquina, enviando em seguida uma mensagem a todos eles.

À variável $user serão atribuídos tantos valores quantos os retornados pelo comando

  awk -F: '{print $1}' /etc/passwd

Observar que, no shell script, o comando está delimitado por aspas invertidas (`).

Como os campos no arquivo /etc/passwd são delimitados por ":", faz-se necessário a especificação da diretiva -F: para que o comando awk possa selecionar corretamente a identificação do usuário ($1, ou o primeiro campo).

Na linha onde se envia a mensagem o caractere < indica que a mensagem a ser enviada encontra-se dentro do arquivo mensagem.importante. O título da mensagem é informado através da diretiva -s seguida pelo valor Aviso Importante.

O comando echo $user é apenas informativo e serve para monitorar o progresso da execução do comando.

Esta dica foi publicada originalmente na Dicas-L em 29 de maio de 1997

Recomende este artigo nas redes sociais

 

 

Veja a relação completa dos artigos desta coluna