Criar Scripts Shell para Processar a Saída de Comandos

Red Hat Enterprise LinuxBeginner
Pratique Agora

Introdução

Neste desafio, você aprenderá a criar um script shell simples capaz de processar a saída de comandos do sistema. Esta é uma habilidade fundamental para automatizar tarefas e extrair informações específicas de ferramentas de linha de comando. Você aprenderá a capturar o resultado de um comando, manipular os dados e utilizar as informações processadas dentro do seu script. Este desafio ajudará você a desenvolver habilidades práticas de automação, essenciais para a administração de sistemas.

Este é um Desafio (Challenge), que difere de um Laboratório Guiado por exigir que você tente concluir a tarefa de forma independente, em vez de apenas seguir passos predefinidos. Desafios costumam ter um nível de dificuldade maior. Se encontrar dificuldades, você pode consultar o Labby ou verificar a solução. Dados históricos mostram que este é um desafio de nível iniciante com uma taxa de aprovação de 89%. Ele recebeu uma taxa de avaliações positivas de 98% dos alunos.

Criar um Script Shell para Processar a Saída de Comandos

Nesta etapa, você criará um script shell que captura a saída do comando ls -l, extrai informações específicas (tamanho e nome do arquivo) e as exibe de forma formatada. Este exercício demonstra como realizar o parsing (análise sintática) da saída de comandos, uma tarefa rotineira na criação de scripts.

Tarefas

  • Criar um script shell que capture a saída do comando ls -l.
  • Extrair o tamanho e o nome de cada arquivo a partir da saída do ls -l.
  • Exibir as informações extraídas em um formato de saída específico.

Requisitos

  • Crie o script no diretório ~/project/scripts.

  • Nomeie o script como process_ls.sh.

  • O script deve começar com a shebang #!/bin/bash.

  • O script deve capturar a saída do comando ls -l e armazená-la em uma variável.

  • Para cada arquivo listado na saída do ls -l, extraia seu tamanho e nome.

  • Exiba o tamanho e o nome do arquivo no seguinte formato:

    File size: <file_size> bytes
    File name: <file_name>

    Substitua <file_size> pelo tamanho real do arquivo em bytes e <file_name> pelo nome real do arquivo.

Exemplo

Supondo que você tenha um diretório com arquivos, ao executar o seu script, a saída deve ser semelhante a esta:

[labex@host ~]$ cd ~/project/scripts
[labex@host scripts]$ nano process_ls.sh
[labex@host scripts]$ chmod +x process_ls.sh
[labex@host scripts]$ ./process_ls.sh
File size: 1300 bytes
File name: process_ls.sh
[labex@host scripts]$

Os tamanhos e nomes exatos dos arquivos dependerão do conteúdo do seu diretório atual.

Dicas

  • Você pode usar a substituição de comando (ex: variable=$(command)) para capturar a saída de um comando.
  • Para processar cada linha da saída do comando, você pode utilizar um loop while read.
  • O comando ls -l fornece informações detalhadas. Você pode precisar de ferramentas como awk ou cut para extrair colunas (campos) específicas de cada linha.
  • Lembre-se que a primeira linha da saída do ls -l geralmente começa com "total" e deve ser ignorada ao processar arquivos individuais.
  • Certifique-se de que seu script tenha permissões de execução (chmod +x).
✨ Verificar Solução e Praticar

Resumo

Neste desafio, você aprendeu a criar um script shell para processar a saída de um comando. Especificamente, você capturou o resultado do ls -l, extraiu tamanhos e nomes de arquivos e os exibiu de forma formatada. Este exercício demonstrou conceitos fundamentais de scripting, como substituição de comando, loops while read e processamento de texto com awk. Essas habilidades são cruciais para automatizar tarefas, analisar arquivos de log e extrair dados específicos de diversas ferramentas de linha de comando, requisitos comuns tanto para o exame RHCSA quanto para o dia a dia da administração de sistemas.