Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

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

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 29 de Maio de 1997

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 052797, onde 05 indica o mês de maio, 27 o dia do mês e 97 o dia do 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 caracter "<" 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.


Dica Humorística

HOW TO IDENTIFY YOUR SYSTEM ADMINISTRATOR:

Situation: Low Disk Space

TECHNICAL THUG: Writes a suite of scripts to monitor disk usage, maintain a database of historic disk usage, predict future disk usage via least squares regression analysis, identify users who are more than a standard deviation over the mean, and send mail to the offending parties. Places script in cron. Disk usage does not change, since disk-hogs, by nature, either ignore script-generated mail, or file it away in triplicate.

ADMINISTRATIVE FASCIST: Puts disk usage policy in motd. Uses disk quotas. Allows no exceptions, thus crippling development work. Locks accounts that go over quota.

MANIAC:

  # cd /home
  # rm -rf ""du -s * | sort -rn | head -1 | awk '{print $2}'"";

IDIOT:

  # cd /home
  # cat ""du -s * | sort -rn | head -1 | awk '{ printf "%s/*\n", $2}'"" | compress

Veja a relação completa dos artigos de Rubens Queiroz de Almeida

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.95/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 2.9 /5 (1992 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Asterisk na Prática 2ª Edição