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