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
Error: No site found with the domain 'moodle.idph.com.br' (Learn more)