você está aqui: Home → Colunistas → Cantinho do Shell
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