{"id":2219,"date":"2026-08-12T18:19:48","date_gmt":"2026-08-12T21:19:48","guid":{"rendered":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/"},"modified":"2026-08-12T18:19:48","modified_gmt":"2026-08-12T21:19:48","slug":"aula-24-shell-script-automatizacao-de-tarefas-com-bash","status":"publish","type":"post","link":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/","title":{"rendered":"Aula 24: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash"},"content":{"rendered":"<p>O dom\u00ednio de <strong>Shell Script<\/strong> \u00e9, sem exagero, o divisor de \u00e1guas entre um administrador de sistemas que opera manualmente e um profissional de infraestrutura que orquestra rotinas complexas com consist\u00eancia, seguran\u00e7a e previsibilidade. Nesta vig\u00e9sima quarta aula do curso <strong>Linux \u2014 Do Zero ao Avan\u00e7ado<\/strong>, voc\u00ea deixar\u00e1 de enxergar o terminal apenas como um espa\u00e7o para digita\u00e7\u00e3o de comandos isolados e passar\u00e1 a compreend\u00ea-lo como uma verdadeira plataforma de desenvolvimento voltada \u00e0 automa\u00e7\u00e3o de tarefas. O <strong>Shell Script<\/strong> com Bash permite transformar sequ\u00eancias de comandos em programas execut\u00e1veis, capazes de tomar decis\u00f5es, repetir opera\u00e7\u00f5es, tratar erros e interagir com o sistema operacional de forma program\u00e1tica.<\/p>\n<p>Por que esse conhecimento \u00e9 t\u00e3o importante? No cotidiano de um profissional de TI, tarefas como backups, monitoramento de servi\u00e7os, rotinas de limpeza, provisionamento de usu\u00e1rios e coleta de logs consomem tempo e est\u00e3o sujeitas a erros humanos quando realizadas manualmente. Um <strong>Shell Script<\/strong> bem escrito elimina a variabilidade, garante padroniza\u00e7\u00e3o e permite que o administrador se concentre em atividades de maior valor. Em nossos projetos na JRT Technology Solutions, nossos especialistas utilizam diariamente scripts em Bash para automatizar desde deploys de aplica\u00e7\u00f5es at\u00e9 auditorias de seguran\u00e7a em servidores Ubuntu, Debian, CentOS e Rocky Linux, justamente porque a portabilidade e a onipresen\u00e7a do interpretador Bash tornam essa linguagem indispens\u00e1vel.<\/p>\n<p>Ao longo desta aula, voc\u00ea vai aprender desde os fundamentos te\u00f3ricos \u2014 como o interpretador processa um script e a import\u00e2ncia do <strong>shebang<\/strong> \u2014 at\u00e9 a constru\u00e7\u00e3o de scripts avan\u00e7ados com fun\u00e7\u00f5es, tratamento de erros, logs estruturados e agendamento via <strong>cron<\/strong>. Mostraremos o passo a passo completo para instalar e configurar ferramentas auxiliares, como o <strong>ShellCheck<\/strong>, em distribui\u00e7\u00f5es baseadas em Debian e em Red Hat. Cada comando ser\u00e1 exibido com sua sa\u00edda esperada no terminal, para que voc\u00ea possa verificar se sua execu\u00e7\u00e3o est\u00e1 correta em tempo real.<\/p>\n<p>Os pr\u00e9-requisitos para acompanhar esta aula s\u00e3o os conhecimentos adquiridos nas aulas anteriores do curso, especialmente manipula\u00e7\u00e3o de arquivos, permiss\u00f5es, vari\u00e1veis de ambiente e editores de texto como <strong>vi<\/strong> ou <strong>nano<\/strong>. N\u00e3o \u00e9 necess\u00e1rio saber programar em outras linguagens, mas familiaridade com l\u00f3gica b\u00e1sica \u2014 vari\u00e1veis, condicionais e loops \u2014 facilitar\u00e1 a compreens\u00e3o. Mesmo que voc\u00ea nunca tenha escrito um script antes, os exemplos desta aula foram desenhados para serem progressivos: iniciaremos com um script simples e evoluiremos at\u00e9 uma solu\u00e7\u00e3o robusta e pronta para produ\u00e7\u00e3o.<\/p>\n<p>Ao final desta aula, voc\u00ea ser\u00e1 capaz de criar <strong>Shell Scripts<\/strong> totalmente funcionais, atribuir permiss\u00f5es de execu\u00e7\u00e3o, depurar erros comuns, validar a sintaxe com ferramentas especializadas, escrever logs profissionais e agendar execu\u00e7\u00f5es autom\u00e1ticas. Esse \u00e9 um passo essencial para as pr\u00f3ximas aulas, que tratar\u00e3o de agendamento avan\u00e7ado com <strong>systemd timers<\/strong> e processamento de texto com express\u00f5es regulares. Prepare seu terminal, pois a pr\u00e1tica come\u00e7a agora.<\/p>\n<h3>O que voc\u00ea vai aprender nesta aula<\/h3>\n<p>Antes de colocarmos as m\u00e3os no teclado, \u00e9 fundamental estabelecer com clareza os objetivos de aprendizagem. Esta aula foi estruturada para que cada se\u00e7\u00e3o construa uma camada de conhecimento sobre a anterior, do conceito mais b\u00e1sico \u00e0 aplica\u00e7\u00e3o mais sofisticada. Voc\u00ea n\u00e3o apenas ver\u00e1 comandos isolados, mas entender\u00e1 o porqu\u00ea de cada escolha t\u00e9cnica e como aplic\u00e1-la em cen\u00e1rios reais de infraestrutura.<\/p>\n<ul>\n<li>Compreender o que \u00e9 <strong>Shell Script<\/strong> e como o interpretador Bash executa scripts no Linux<\/li>\n<li>Dominar a estrutura de um script: <strong>shebang<\/strong>, vari\u00e1veis, argumentos, condicionais e loops<\/li>\n<li>Aprender a criar, editar e conceder permiss\u00e3o de execu\u00e7\u00e3o a scripts de forma padronizada<\/li>\n<li>Instalar e configurar o <strong>ShellCheck<\/strong> em Ubuntu\/Debian e CentOS\/RHEL\/Rocky Linux<\/li>\n<li>Construir um script completo de backup com gera\u00e7\u00e3o de arquivos compactados e timestamps<\/li>\n<li>Desenvolver um script avan\u00e7ado com fun\u00e7\u00f5es, tratamento de erros, logs e rota\u00e7\u00e3o de backups<\/li>\n<li>Agendar a execu\u00e7\u00e3o autom\u00e1tica de scripts usando <strong>cron<\/strong><\/li>\n<li>Verificar a corretude do script com comandos de valida\u00e7\u00e3o e interpretar sa\u00eddas de erro<\/li>\n<li>Corrigir os erros mais frequentes em <strong>Shell Script<\/strong>, como permiss\u00e3o negada e quebras de linha<\/li>\n<li>Aplicar boas pr\u00e1ticas de mercado utilizadas pela JRT Technology Solutions em ambientes corporativos<\/li>\n<\/ul>\n<h3>Pr\u00e9-requisitos e Ambiente<\/h3>\n<p>Para executar todos os procedimentos desta aula, voc\u00ea precisar\u00e1 de um ambiente Linux com acesso a um terminal e privil\u00e9gios de usu\u00e1rio comum. O interpretador <strong>Bash<\/strong> j\u00e1 vem instalado por padr\u00e3o em praticamente todas as distribui\u00e7\u00f5es Linux, mas vamos conferir sua presen\u00e7a e vers\u00e3o na se\u00e7\u00e3o de verifica\u00e7\u00e3o. Recomendamos que voc\u00ea utilize uma m\u00e1quina virtual ou um servidor de testes para n\u00e3o comprometer sistemas em produ\u00e7\u00e3o, especialmente ao executar scripts que manipulam diret\u00f3rios e arquivos.<\/p>\n<p>Esta aula cobre dois ecossistemas principais de distribui\u00e7\u00f5es Linux, justamente para que voc\u00ea possa reproduzir os passos independentemente da plataforma utilizada em sua organiza\u00e7\u00e3o. No lado Debian, trabalharemos com <strong>Ubuntu Server 22.04\/24.04<\/strong> e <strong>Debian 12<\/strong>. No lado Red Hat, utilizaremos <strong>CentOS Stream 9<\/strong>, <strong>RHEL 9<\/strong> e <strong>Rocky Linux 9<\/strong>. Os comandos de instala\u00e7\u00e3o de pacotes adicionais, como o <strong>ShellCheck<\/strong>, ser\u00e3o apresentados para ambos os gerenciadores de pacotes: <strong>apt<\/strong> e <strong>dnf<\/strong>.<\/p>\n<p>Voc\u00ea tamb\u00e9m precisar\u00e1 de um editor de texto no terminal, como <strong>nano<\/strong>, <strong>vim<\/strong> ou <strong>vi<\/strong>. Caso prefira, pode criar os arquivos de script utilizando o comando <strong>cat<\/strong> com heredoc, como faremos em nossos exemplos para garantir que o conte\u00fado seja exibido por completo. Ter um diret\u00f3rio dedicado para armazenar seus scripts, como <strong>~\/bin<\/strong>, \u00e9 uma excelente pr\u00e1tica e ser\u00e1 parte do nosso passo a passo, pois facilita a organiza\u00e7\u00e3o e permite adicionar o diret\u00f3rio ao <strong>PATH<\/strong> para executar scripts de qualquer local do sistema.<\/p>\n<p>Por fim, verifique se voc\u00ea possui permiss\u00e3o para instalar pacotes com <strong>sudo<\/strong>, caso ainda n\u00e3o tenha o ShellCheck instalado. Em servidores corporativos, como os que gerenciamos na JRT Technology Solutions, \u00e9 comum que a instala\u00e7\u00e3o de pacotes seja feita por um administrador com privil\u00e9gios elevados, mas os scripts em si devem ser executados com o menor privil\u00e9gio necess\u00e1rio. Esse princ\u00edpio de seguran\u00e7a ser\u00e1 refor\u00e7ado ao longo de toda a aula, pois um bom <strong>Shell Script<\/strong> n\u00e3o deve depender de permiss\u00f5es de root para tarefas rotineiras, a menos que seja estritamente necess\u00e1rio.<\/p>\n<h3>Fundamentos do Shell Script: interpretador, shebang e vari\u00e1veis<\/h3>\n<p>Um <strong>Shell Script<\/strong> nada mais \u00e9 do que um arquivo de texto contendo uma sequ\u00eancia de comandos que o shell interpreta e executa em ordem. A grande vantagem \u00e9 que qualquer comando que voc\u00ea digita interativamente no terminal pode ser incorporado a um script, ganhando a capacidade de automa\u00e7\u00e3o. O interpretador padr\u00e3o na maioria das distribui\u00e7\u00f5es Linux \u00e9 o <strong>Bash<\/strong> (<em>Bourne Again Shell<\/em>), localizado geralmente em <strong>\/bin\/bash<\/strong>. A primeira linha de um script deve indicar qual interpretador ser\u00e1 usado para execut\u00e1-lo; essa linha \u00e9 conhecida como <strong>shebang<\/strong> e tem a forma <strong>#!\/bin\/bash<\/strong> ou, de forma mais port\u00e1til, <strong>#!\/usr\/bin\/env bash<\/strong>. A segunda forma \u00e9 recomendada porque localiza o Bash automaticamente a partir do <strong>PATH<\/strong>, aumentando a compatibilidade entre sistemas.<\/p>\n<p>Ap\u00f3s o shebang, o corpo do script cont\u00e9m os comandos, que podem ser t\u00e3o simples quanto um <strong>echo<\/strong> ou t\u00e3o complexos quanto fun\u00e7\u00f5es com estruturas condicionais aninhadas. \u00c9 crucial entender que cada linha \u00e9 executada sequencialmente, a menos que estruturas de controle alterem o fluxo. O Bash oferece vari\u00e1veis para armazenar valores, e a atribui\u00e7\u00e3o segue a sintaxe <strong>NOME=valor<\/strong>, sem espa\u00e7os ao redor do sinal de igual. Para acessar o valor de uma vari\u00e1vel, utiliza-se o s\u00edmbolo <strong>$<\/strong> antes do nome, como em <strong>$NOME<\/strong>. As vari\u00e1veis podem conter strings, n\u00fameros, caminhos de arquivos e at\u00e9 mesmo a sa\u00edda de comandos, utilizando a substitui\u00e7\u00e3o <strong>$(comando)<\/strong>.<\/p>\n<p>Existem tamb\u00e9m vari\u00e1veis especiais que todo script deve dominar. A vari\u00e1vel <strong>$0<\/strong> cont\u00e9m o nome do pr\u00f3prio script, enquanto <strong>$1<\/strong>, <strong>$2<\/strong> e assim por diante armazenam os argumentos passados na linha de comando. A vari\u00e1vel <strong>$#<\/strong> informa a quantidade de argumentos recebidos, e <strong>$@<\/strong> expande todos os argumentos como uma lista. O c\u00f3digo de sa\u00edda do \u00faltimo comando executado fica dispon\u00edvel em <strong>$?<\/strong>, sendo <strong>0<\/strong> para sucesso e qualquer outro valor para falha. Esse conhecimento \u00e9 a base para construir scripts que tomam decis\u00f5es informadas sobre o ambiente.<\/p>\n<p>Outro conceito fundamental \u00e9 a expans\u00e3o de vari\u00e1veis com aspas. Em Bash, <strong>&#8220;$VAR&#8221;<\/strong> (aspas duplas) preserva o valor da vari\u00e1vel como uma \u00fanica palavra, mesmo que contenha espa\u00e7os, enquanto <strong>&#8216;$VAR&#8217;<\/strong> (aspas simples) trata o conte\u00fado literalmente, sem expandir a vari\u00e1vel. O uso correto de aspas evita uma infinidade de erros sutis, como a quebra de caminhos com espa\u00e7os ou a interpreta\u00e7\u00e3o acidental de caracteres especiais. Em nossos treinamentos na JRT Technology Solutions, enfatizamos que a aus\u00eancia de aspas \u00e9 uma das causas mais comuns de bugs em scripts que operam em ambientes reais.<\/p>\n<p>Al\u00e9m das vari\u00e1veis, o <strong>Shell Script<\/strong> disponibiliza estruturas de teste extremamente \u00fateis. O comando <strong>test<\/strong>, representado por <strong>[ ]<\/strong> ou <strong>[[ ]]<\/strong>, permite verificar condi\u00e7\u00f5es sobre arquivos, strings e n\u00fameros. Por exemplo, <strong>[ -d &#8220;$DIR&#8221; ]<\/strong> verifica se o diret\u00f3rio existe, <strong>[ -f &#8220;$ARQ&#8221; ]<\/strong> verifica se \u00e9 um arquivo regular, e compara\u00e7\u00f5es de strings usam operadores como <strong>=<\/strong> e <strong>!=<\/strong>. A tabela a seguir resume os operadores mais utilizados em scripts profissionais.<\/p>\n<table>\n<caption>Tabela 1 \u2014 Principais operadores de teste em Shell Script<\/caption>\n<thead>\n<tr>\n<th>Operador<\/th>\n<th>Finalidade<\/th>\n<th>Exemplo de uso<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>-d DIR<\/strong><\/td>\n<td>Verifica se o caminho \u00e9 um diret\u00f3rio<\/td>\n<td><code>[ -d \"\/etc\" ]<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>-f ARQ<\/strong><\/td>\n<td>Verifica se o caminho \u00e9 um arquivo regular<\/td>\n<td><code>[ -f \"\/etc\/passwd\" ]<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>-x ARQ<\/strong><\/td>\n<td>Verifica se o arquivo tem permiss\u00e3o de execu\u00e7\u00e3o<\/td>\n<td><code>[ -x \".\/backup.sh\" ]<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>-z STR<\/strong><\/td>\n<td>Verifica se a string \u00e9 vazia<\/td>\n<td><code>[ -z \"$VAR\" ]<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>-n STR<\/strong><\/td>\n<td>Verifica se a string n\u00e3o \u00e9 vazia<\/td>\n<td><code>[ -n \"$VAR\" ]<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>= \/ !=<\/strong><\/td>\n<td>Compara strings (igualdade\/diferen\u00e7a)<\/td>\n<td><code>[ \"$USER\" = \"root\" ]<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>-eq \/ -ne<\/strong><\/td>\n<td>Compara n\u00fameros (igual\/diferente)<\/td>\n<td><code>[ \"$NUM\" -eq 5 ]<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>-gt \/ -lt<\/strong><\/td>\n<td>Compara n\u00fameros (maior\/menor)<\/td>\n<td><code>[ \"$IDADE\" -gt 18 ]<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Com esses fundamentos estabelecidos, voc\u00ea est\u00e1 pronto para criar seus primeiros scripts. Lembre-se de que a pr\u00e1tica constante \u00e9 essencial; \u00e0 medida que avan\u00e7armos para as se\u00e7\u00f5es pr\u00e1ticas, voc\u00ea ver\u00e1 esses conceitos aplicados em contextos reais de automa\u00e7\u00e3o. A pr\u00f3xima se\u00e7\u00e3o aprofunda as estruturas de controle e os mecanismos de redirecionamento, que s\u00e3o o cora\u00e7\u00e3o de qualquer <strong>Shell Script<\/strong> minimamente sofisticado.<\/p>\n<h3>Estruturas de Controle, Fun\u00e7\u00f5es e Redirecionamentos no Shell Script<\/h3>\n<p>As estruturas de controle permitem que um <strong>Shell Script<\/strong> tome decis\u00f5es e repita opera\u00e7\u00f5es sem interven\u00e7\u00e3o humana. O <strong>if<\/strong> \u00e9 a estrutura condicional mais b\u00e1sica: ele avalia um comando ou teste e, se o resultado for verdadeiro (c\u00f3digo de sa\u00edda 0), executa um bloco de comandos. O <strong>else<\/strong> e o <strong>elif<\/strong> ampliam essa l\u00f3gica para m\u00faltiplos cen\u00e1rios. Por exemplo, um script pode verificar se um servi\u00e7o est\u00e1 ativo e, caso n\u00e3o esteja, tentar inici\u00e1-lo e registrar um log. A sintaxe b\u00e1sica \u00e9 <strong>if [ condi\u00e7\u00e3o ]; then &#8230; fi<\/strong>, e \u00e9 obrigat\u00f3rio fechar o bloco com <strong>fi<\/strong>.<\/p>\n<p>Os loops <strong>for<\/strong> e <strong>while<\/strong> s\u00e3o as principais estruturas de repeti\u00e7\u00e3o. O <strong>for<\/strong> itera sobre uma lista de itens, como arquivos de um diret\u00f3rio ou valores separados por espa\u00e7os. O <strong>while<\/strong> executa um bloco enquanto uma condi\u00e7\u00e3o permanecer verdadeira, sendo ideal para ler linha a linha de um arquivo ou monitorar processos. Al\u00e9m disso, o <strong>case<\/strong> oferece uma forma elegante de tratar m\u00faltiplos valores de uma vari\u00e1vel, muito \u00fatil para construir menus e analisar flags de linha de comando, como veremos no script avan\u00e7ado desta aula.<\/p>\n<p>As fun\u00e7\u00f5es s\u00e3o blocos de c\u00f3digo reutiliz\u00e1veis que podem ser chamados pelo nome. Elas melhoram a legibilidade do script e evitam duplica\u00e7\u00e3o de c\u00f3digo. Uma fun\u00e7\u00e3o \u00e9 definida com a sintaxe <strong>nome_da_funcao() { &#8230; }<\/strong> ou <strong>function nome_da_funcao { &#8230; }<\/strong>. Dentro das fun\u00e7\u00f5es, os argumentos s\u00e3o acessados pelas vari\u00e1veis <strong>$1<\/strong>, <strong>$2<\/strong> etc., que s\u00e3o locais \u00e0 fun\u00e7\u00e3o. O retorno de uma fun\u00e7\u00e3o pode ser um c\u00f3digo num\u00e9rico por meio do comando <strong>return<\/strong>, permitindo que o chamador verifique sucesso ou falha com <strong>if<\/strong>.<\/p>\n<p>O redirecionamento de entrada e sa\u00edda \u00e9 outro pilar essencial. Os operadores <strong>&gt;<\/strong>, <strong>&gt;&gt;<\/strong> e <strong>&lt;<\/strong> permitem enviar a sa\u00edda de um comando para um arquivo, anexar ao final de um arquivo existente ou ler a entrada a partir de um arquivo, respectivamente. Os descritores de arquivo padr\u00e3o s\u00e3o 0 (stdin), 1 (stdout) e 2 (stderr). Redirecionar <strong>2&gt;&amp;1<\/strong> envia a sa\u00edda de erros para o mesmo destino da sa\u00edda padr\u00e3o, t\u00e9cnica comum em logs. Outro recurso poderoso \u00e9 o <strong>pipe<\/strong> (<strong>|<\/strong>), que conecta a sa\u00edda de um comando \u00e0 entrada de outro, como em <strong>ps aux | grep nginx<\/strong>.<\/p>\n<p>A combina\u00e7\u00e3o dessas estruturas viabiliza a cria\u00e7\u00e3o de scripts que n\u00e3o apenas executam comandos, mas que reagem ao ambiente, tratam falhas e produzem registros audit\u00e1veis. Nas pr\u00f3ximas se\u00e7\u00f5es, voc\u00ea ver\u00e1 como aplicar esses conceitos em exemplos concretos. Antes, por\u00e9m, vamos instalar ferramentas complementares que elevar\u00e3o a qualidade do seu <strong>Shell Script<\/strong> a padr\u00f5es profissionais.<\/p>\n<h3>Instalando Ferramentas Complementares para Shell Script no Ubuntu\/Debian e CentOS\/RHEL<\/h3>\n<p>O interpretador Bash j\u00e1 vem instalado em todas as distribui\u00e7\u00f5es Linux modernas, mas uma ferramenta adicional que recomendamos fortemente \u00e9 o <strong>ShellCheck<\/strong>. Trata-se de um analisador est\u00e1tico de scripts que identifica erros de sintaxe, m\u00e1s pr\u00e1ticas, vari\u00e1veis n\u00e3o declaradas, problemas com aspas e outros defeitos comuns. Em nossos projetos na JRT Technology Solutions, o ShellCheck faz parte do pipeline de valida\u00e7\u00e3o de qualquer script que v\u00e1 para produ\u00e7\u00e3o, pois ele reduz drasticamente o tempo de depura\u00e7\u00e3o e previne falhas em ambientes cr\u00edticos.<\/p>\n<p>O processo de instala\u00e7\u00e3o \u00e9 simples e ser\u00e1 demonstrado para os dois principais gerenciadores de pacotes. Se voc\u00ea estiver usando <strong>Ubuntu<\/strong> ou <strong>Debian<\/strong>, o pacote est\u00e1 dispon\u00edvel nos reposit\u00f3rios oficiais. Execute os comandos abaixo para atualizar a lista de pacotes e instalar o ShellCheck com o <strong>apt<\/strong>. Em sistemas baseados em Red Hat, como <strong>CentOS Stream<\/strong>, <strong>RHEL<\/strong> e <strong>Rocky Linux<\/strong>, \u00e9 necess\u00e1rio habilitar o reposit\u00f3rio <strong>EPEL<\/strong> (Extra Packages for Enterprise Linux) antes de instalar com o <strong>dnf<\/strong>.<\/p>\n<p><strong>Passo 1 \u2014 Instala\u00e7\u00e3o no Ubuntu\/Debian:<\/strong><\/p>\n<pre><code># Atualiza a lista de pacotes dispon\u00edveis no reposit\u00f3rio\nsudo apt update\n\n# Instala o ShellCheck e suas depend\u00eancias de forma n\u00e3o interativa\nsudo apt install -y shellcheck<\/code><\/pre>\n<p><strong>Passo 2 \u2014 Sa\u00edda esperada ap\u00f3s a instala\u00e7\u00e3o no Ubuntu\/Debian:<\/strong><\/p>\n<pre><code class=\"output\">Hit:1 http:\/\/archive.ubuntu.com\/ubuntu jammy InRelease\nGet:2 http:\/\/archive.ubuntu.com\/ubuntu jammy-updates InRelease [128 kB]\nReading package lists... Done\nBuilding dependency tree... Done\nReading state information... Done\nThe following NEW packages will be installed:\n  shellcheck\n0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.\nNeed to get 1.940 kB of archives.\nAfter this operation, 12,8 MB of additional disk space will be used.\nGet:1 http:\/\/archive.ubuntu.com\/ubuntu jammy\/universe amd64 shellcheck amd64 0.8.0-1 [1.940 kB]\nFetched 1.940 kB in 1s (1.900 kB\/s)\nSelecting previously unselected package shellcheck.\n(Reading database ... 195642 files and directories currently installed.)\nPreparing to unpack ...\/shellcheck_0.8.0-1_amd64.deb ...\nUnpacking shellcheck (0.8.0-1) ...\nSetting up shellcheck (0.8.0-1) ...\nProcessing triggers for man-db (2.10.2-1) ...<\/code><\/pre>\n<p><strong>Passo 3 \u2014 Instala\u00e7\u00e3o no CentOS\/RHEL\/Rocky Linux:<\/strong><\/p>\n<pre><code># Habilita o reposit\u00f3rio EPEL, necess\u00e1rio para pacotes adicionais no ecossistema Red Hat\nsudo dnf install -y epel-release\n\n# Instala o ShellCheck utilizando o gerenciador de pacotes dnf\nsudo dnf install -y ShellCheck<\/code><\/pre>\n<p><strong>Passo 4 \u2014 Sa\u00edda esperada ap\u00f3s a instala\u00e7\u00e3o no CentOS\/RHEL\/Rocky:<\/strong><\/p>\n<pre><code class=\"output\">Last metadata expiration check: 0:03:22 ago on Wed 12 Aug 2026 10:15:44 AM -03.\nDependencies resolved.\n================================================================================\n Package              Architecture   Version                  Repository    Size\n================================================================================\n ShellCheck           x86_64         0.8.0-2.el9              epel         2.1 M\nInstalling dependencies:\n libffi               x86_64         3.4.2-8.el9              baseos        36 k\n\nTransaction Summary\n================================================================================\nInstall  2 Packages\n\nTotal download size: 2.2 M\nInstalled size: 12 M\nDownloading Packages:\n(1\/2): libffi-3.4.2-8.el9.x86_64.rpm                 45 kB\/s |  36 kB     00:00    \n(2\/2): ShellCheck-0.8.0-2.el9.x86_64.rpm             431 kB\/s | 2.1 MB     00:05    \n--------------------------------------------------------------------------------\nTotal                                               466 kB\/s | 2.2 MB     00:05     \nRunning transaction check\nTransaction check succeeded.\nRunning transaction test\nTransaction test succeeded.\nRunning transaction\n  Preparing        :                                                        1\/1 \n  Installing       : libffi-3.4.2-8.el9.x86_64                              1\/2 \n  Installing       : ShellCheck-0.8.0-2.el9.x86_64                          2\/2 \n  Running scriptlet: ShellCheck-0.8.0-2.el9.x86_64                          2\/2 \n  Verifying        : libffi-3.4.2-8.el9.x86_64                              1\/2 \n  Verifying        : ShellCheck-0.8.0-2.el9.x86_64                          2\/2 \nInstalled:\n  ShellCheck-0.8.0-2.el9.x86_64          libffi-3.4.2-8.el9.x86_64         \nComplete!<\/code><\/pre>\n<p>Ap\u00f3s a instala\u00e7\u00e3o, \u00e9 recomend\u00e1vel criar um diret\u00f3rio padr\u00e3o para armazenar seus scripts pessoais e adicion\u00e1-lo ao <strong>PATH<\/strong>. Dessa forma, voc\u00ea poder\u00e1 executar seus scripts de qualquer lugar do sistema sem precisar digitar o caminho completo. O procedimento \u00e9 id\u00eantico em ambas as distribui\u00e7\u00f5es, pois depende apenas do shell e n\u00e3o do gerenciador de pacotes. Vamos executar os passos a seguir, que criam o diret\u00f3rio <strong>~\/bin<\/strong>, adicionam a linha de exporta\u00e7\u00e3o ao arquivo <strong>~\/.bashrc<\/strong> e recarregam o arquivo para aplicar as altera\u00e7\u00f5es imediatamente.<\/p>\n<pre><code># Cria o diret\u00f3rio ~\/bin para armazenar scripts pessoais\nmkdir -p \"$HOME\/bin\"\n\n# Adiciona o diret\u00f3rio ~\/bin ao PATH no arquivo ~\/.bashrc, preservando o conte\u00fado existente\necho 'export PATH=\"$HOME\/bin:$PATH\"' >> \"$HOME\/.bashrc\"\n\n# Recarrega as configura\u00e7\u00f5es do ~\/.bashrc para o shell atual\nsource \"$HOME\/.bashrc\"\n\n# Exibe o novo valor do PATH para confirmar a inclus\u00e3o do ~\/bin\necho \"$PATH\"<\/code><\/pre>\n<pre><code class=\"output\">\/home\/aluno\/bin:\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin:\/usr\/games:\/usr\/local\/games:\/snap\/bin<\/code><\/pre>\n<p>Com o diret\u00f3rio pronto e o ShellCheck instalado, voc\u00ea j\u00e1 pode armazenar e validar seus scripts como um profissional. Guarde essas informa\u00e7\u00f5es, pois ser\u00e3o utilizadas nas pr\u00f3ximas se\u00e7\u00f5es para criar e testar nossos exemplos de <strong>Shell Script<\/strong>. A instala\u00e7\u00e3o do ShellCheck \u00e9 um investimento de poucos minutos que retornar\u00e1 em economia de horas de depura\u00e7\u00e3o futura.<\/p>\n<h3>Criando seu Primeiro Shell Script Completo \u2014 Automa\u00e7\u00e3o de Backup<\/h3>\n<p>Vamos agora colocar em pr\u00e1tica tudo o que foi aprendido at\u00e9 aqui criando um <strong>Shell Script<\/strong> de backup que compacta um diret\u00f3rio de origem e armazena o resultado em um diret\u00f3rio de destino com um timestamp no nome do arquivo. Esse script \u00e9 um exemplo cl\u00e1ssico e extremamente \u00fatil no cotidiano de qualquer administrador de sistemas. A ideia \u00e9 que ele receba dois argumentos: o diret\u00f3rio de origem e o diret\u00f3rio de destino. Antes de criar o arquivo, entenda o racioc\u00ednio por tr\u00e1s de cada trecho, pois isso facilitar\u00e1 a adapta\u00e7\u00e3o para outros cen\u00e1rios.<\/p>\n<p>O script come\u00e7a com o <strong>shebang<\/strong> <strong>#!\/usr\/bin\/env bash<\/strong>, que garante portabilidade entre sistemas onde o Bash pode estar em locais diferentes. Em seguida, utiliza-se <strong>set -euo pipefail<\/strong> para ativar um modo de seguran\u00e7a: <strong>-e<\/strong> faz o script encerrar imediatamente se qualquer comando retornar erro; <strong>-u<\/strong> considera o uso de vari\u00e1veis n\u00e3o definidas como erro; e <strong>pipefail<\/strong> faz com que o c\u00f3digo de sa\u00edda de um pipeline seja o do primeiro comando que falhar, e n\u00e3o apenas o \u00faltimo. Essas op\u00e7\u00f5es s\u00e3o consideradas boas pr\u00e1ticas e evitam que o script continue executando ap\u00f3s uma falha silenciosa.<\/p>\n<p>As duas primeiras vari\u00e1veis capturam os argumentos usando a sintaxe <strong>${1:?mensagem}<\/strong>, que atribui o valor do primeiro argumento e, se ele estiver vazio, imprime a mensagem de erro e encerra o script. Em seguida, o script valida se o diret\u00f3rio de origem existe com <strong>[ ! -d &#8220;$ORIGEM&#8221; ]<\/strong>. Se n\u00e3o existir, exibe uma mensagem de erro e sai com c\u00f3digo <strong>1<\/strong>, indicando falha. A cria\u00e7\u00e3o do diret\u00f3rio de destino \u00e9 feita com <strong>mkdir -p<\/strong>, que cria diret\u00f3rios aninhados se necess\u00e1rio, sem erro se j\u00e1 existirem.<\/p>\n<p>O nome do arquivo de backup \u00e9 gerado dinamicamente com a data e hora atuais, obtidas pelo comando <strong>date +%Y%m%d_%H%M%S<\/strong>. O comando <strong>tar -czf<\/strong> cria um arquivo compactado com <strong>gzip<\/strong>, utilizando o <strong>-C<\/strong> para mudar para o diret\u00f3rio pai antes de empacotar, evitando que o caminho absoluto fique gravado no arquivo. Por fim, o script exibe uma mensagem de sucesso com o caminho completo do arquivo gerado. Acompanhe abaixo o conte\u00fado completo do script que devemos criar.<\/p>\n<p><strong>Passo 1 \u2014 Criando o arquivo do script:<\/strong><\/p>\n<pre><code># Utiliza um heredoc para criar o arquivo backup.sh com todo o conte\u00fado do script\ncat &lt;&lt; 'EOF' &gt; \"$HOME\/bin\/backup.sh\"\n#!\/usr\/bin\/env bash\n# Script: backup.sh\n# Descri\u00e7\u00e3o: Realiza backup de um diret\u00f3rio de origem para um diret\u00f3rio de destino.\n# Uso: backup.sh &lt;diretorio_origem&gt; &lt;diretorio_destino&gt;\n\n# Ativa modo de seguran\u00e7a: encerra em erro, trata vari\u00e1veis n\u00e3o definidas e falhas em pipes\nset -euo pipefail\n\n# Captura e valida os argumentos obrigat\u00f3rios\nORIGEM=\"${1:?Erro: informe o diret\u00f3rio de origem como primeiro argumento}\"\nDESTINO=\"${2:?Erro: informe o diret\u00f3rio de destino como segundo argumento}\"\n\n# Verifica se o diret\u00f3rio de origem existe e \u00e9 acess\u00edvel\nif [ ! -d \"$ORIGEM\" ]; then\n    echo \"Erro: o diret\u00f3rio de origem '$ORIGEM' n\u00e3o existe.\" &gt;&amp;2\n    exit 1\nfi\n\n# Cria o diret\u00f3rio de destino se ele ainda n\u00e3o existir\nif [ ! -d \"$DESTINO\" ]; then\n    mkdir -p \"$DESTINO\"\n    echo \"Diret\u00f3rio de destino '$DESTINO' criado.\"\nfi\n\n# Gera um timestamp para compor o nome do arquivo de backup\nTIMESTAMP=$(date +%Y%m%d_%H%M%S)\n\n# Monta o nome do arquivo com base no diret\u00f3rio de origem e no timestamp\nNOME_ARQUIVO=\"backup_$(basename \"$ORIGEM\")_${TIMESTAMP}.tar.gz\"\nCAMINHO_SAIDA=\"${DESTINO}\/${NOME_ARQUIVO}\"\n\n# Cria o arquivo compactado usando tar com gzip\n# O -C faz o tar mudar para o diret\u00f3rio pai antes de empacotar,\n# garantindo que apenas o nome do diret\u00f3rio original seja gravado.\ntar -czf \"$CAMINHO_SAIDA\" -C \"$(dirname \"$ORIGEM\")\" \"$(basename \"$ORIGEM\")\"\n\n# Exibe mensagem de sucesso com o caminho do arquivo gerado\necho \"Backup conclu\u00eddo com sucesso: $CAMINHO_SAIDA\"\nEOF<\/code><\/pre>\n<p><strong>Passo 2 \u2014 Concedendo permiss\u00e3o de execu\u00e7\u00e3o ao script:<\/strong><\/p>\n<pre><code># Adiciona a permiss\u00e3o de execu\u00e7\u00e3o para o dono do arquivo\nchmod +x \"$HOME\/bin\/backup.sh\"\n\n# Lista o arquivo para confirmar a permiss\u00e3o de execu\u00e7\u00e3o (o -rwxr-xr-x indica sucesso)\nls -l \"$HOME\/bin\/backup.sh\"<\/code><\/pre>\n<pre><code class=\"output\">-rwxr-xr-x 1 aluno aluno 1242 ago 12 10:30 \/home\/aluno\/bin\/backup.sh<\/code><\/pre>\n<p><strong>Passo 3 \u2014 Executando o script e verificando o backup gerado:<\/strong><\/p>\n<pre><code># Executa o script passando \/etc como origem e \/tmp\/backup como destino\n\"$HOME\/bin\/backup.sh\" \/etc \/tmp\/backup<\/code><\/pre>\n<pre><code class=\"output\">Diret\u00f3rio de destino '\/tmp\/backup' criado.\nBackup conclu\u00eddo com sucesso: \/tmp\/backup\/backup_etc_20260812_103015.tar.gz<\/code><\/pre>\n<p>O script funcionou exatamente como esperado: criou o diret\u00f3rio de destino, compactou o diret\u00f3rio <strong>\/etc<\/strong> e gerou um arquivo com timestamp no nome. Esse \u00e9 o primeiro passo para dominar a arte da automa\u00e7\u00e3o com <strong>Shell Script<\/strong>. Na pr\u00f3xima se\u00e7\u00e3o, evoluiremos esse exemplo para um script avan\u00e7ado com fun\u00e7\u00f5es, tratamento granular de<\/p>\n<div style=\"margin:52px 0 40px;padding:36px 28px;background:linear-gradient(135deg,#0f172a 0%,#1a2744 100%);border:2px solid #25D366;border-radius:18px;text-align:center;box-shadow:0 4px 28px rgba(37,211,102,0.18)\">\n<p style=\"margin:0 0 10px;font-size:18px;color:#ffffff;font-weight:700;line-height:1.4\">Quer aprender na pr\u00e1tica com especialistas?<\/p>\n<p style=\"margin:0 0 28px;font-size:15px;color:#94a3b8;font-weight:400;line-height:1.6\">A JRT Technology Solutions oferece treinamentos e implementa\u00e7\u00e3o de Linux para equipes corporativas.<\/p>\n<p>  <a href=\"https:\/\/api.whatsapp.com\/send\/?phone=5521980606699&#038;text=Ol%C3%A1!%20Tenho%20interesse%20no%20treinamento%20de%20Linux.&#038;type=phone_number&#038;app_absent=0\"\n     target=\"_blank\" rel=\"noopener noreferrer\"\n     style=\"display:inline-flex;align-items:center;gap:12px;background:#25D366;color:#ffffff;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;font-weight:700;padding:15px 32px;border-radius:100px;text-decoration:none;box-shadow:0 4px 16px rgba(37,211,102,0.45);letter-spacing:0.01em\"><br \/>\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"#ffffff\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/><\/svg><br \/>\n    Falar no WhatsApp<br \/>\n  <\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>O dom\u00ednio de Shell Script \u00e9, sem exagero, o divisor de \u00e1guas entre um administrador de sistemas que opera manualmente e um profissional de infraestrutura que orquestra rotinas complexas com consist\u00eancia, seguran\u00e7a e previsibilidade. Nesta vig\u00e9sima quarta aula do curso Linux \u2014 Do Zero ao Avan\u00e7ado, voc\u00ea deixar\u00e1 de enxergar o terminal apenas como um &#8230; <a title=\"Aula 24: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash\" class=\"read-more\" href=\"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/\" aria-label=\"Read more about Aula 24: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash\">Ler mais<\/a><\/p>\n","protected":false},"author":1,"featured_media":2218,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"iawp_total_views":1,"footnotes":""},"categories":[62],"tags":[3303],"class_list":["post-2219","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-linux-do-zero-ao-avancado-shell-script-automatizacao-de-tarefas-com-bash"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"O dom\u00ednio de Shell Script \u00e9, sem exagero, o divisor de \u00e1guas entre um administrador de sistemas que opera manualmente e um profissional de infraestrutura que orquestra rotinas complexas com consist\u00eancia, seguran\u00e7a e previsibilidade. Nesta vig\u00e9sima quarta aula do curso Linux \u2014 Do Zero ao Avan\u00e7ado, voc\u00ea deixar\u00e1 de enxergar o terminal apenas como um\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Thiago Paes Rodrigues\"\/>\n\t<meta name=\"google-site-verification\" content=\"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_BR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Aula 24: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta property=\"og:description\" content=\"O dom\u00ednio de Shell Script \u00e9, sem exagero, o divisor de \u00e1guas entre um administrador de sistemas que opera manualmente e um profissional de infraestrutura que orquestra rotinas complexas com consist\u00eancia, seguran\u00e7a e previsibilidade. Nesta vig\u00e9sima quarta aula do curso Linux \u2014 Do Zero ao Avan\u00e7ado, voc\u00ea deixar\u00e1 de enxergar o terminal apenas como um\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"100\" \/>\n\t\t<meta property=\"og:image:height\" content=\"75\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-12T21:19:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-12T21:19:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61590814880509\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Aula 24: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta name=\"twitter:description\" content=\"O dom\u00ednio de Shell Script \u00e9, sem exagero, o divisor de \u00e1guas entre um administrador de sistemas que opera manualmente e um profissional de infraestrutura que orquestra rotinas complexas com consist\u00eancia, seguran\u00e7a e previsibilidade. Nesta vig\u00e9sima quarta aula do curso Linux \u2014 Do Zero ao Avan\u00e7ado, voc\u00ea deixar\u00e1 de enxergar o terminal apenas como um\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/12\\\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\\\/#blogposting\",\"name\":\"Aula 24: Shell Script \\u2014 automatiza\\u00e7\\u00e3o de tarefas com Bash - BLOG - JRT Technology Solutions\",\"headline\":\"Aula 24: Shell Script \\u2014 automatiza\\u00e7\\u00e3o de tarefas com Bash\",\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/ai-image-1786569578421.jpg\",\"width\":1440,\"height\":1024,\"caption\":\"Aula 24: Shell Script \\u2014 automatiza\\u00e7\\u00e3o de tarefas com Bash\"},\"datePublished\":\"2026-08-12T18:19:48-03:00\",\"dateModified\":\"2026-08-12T18:19:48-03:00\",\"inLanguage\":\"pt-BR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/12\\\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/12\\\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\\\/#webpage\"},\"articleSection\":\"Linux, Linux \\u2014 Do Zero ao Avan\\u00e7ado: Shell Script \\u2014 automatiza\\u00e7\\u00e3o de tarefas com Bash\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/12\\\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/linux\\\/#listItem\",\"name\":\"Linux\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/linux\\\/#listItem\",\"position\":2,\"name\":\"Linux\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/linux\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/12\\\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\\\/#listItem\",\"name\":\"Aula 24: Shell Script \\u2014 automatiza\\u00e7\\u00e3o de tarefas com Bash\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/12\\\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\\\/#listItem\",\"position\":3,\"name\":\"Aula 24: Shell Script \\u2014 automatiza\\u00e7\\u00e3o de tarefas com Bash\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/linux\\\/#listItem\",\"name\":\"Linux\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"telephone\":\"+552138277513\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/cropped-logo-mini.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/12\\\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\\\/#organizationLogo\",\"width\":100,\"height\":75},\"image\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/12\\\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=61590814880509\",\"https:\\\/\\\/www.instagram.com\\\/jrtx.tech\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/\",\"name\":\"Thiago Paes Rodrigues\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/12\\\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\\\/#authorImage\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/cropped-foto-rascunho3-96x96.jpeg\",\"width\":96,\"height\":96,\"caption\":\"Thiago Paes Rodrigues\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/12\\\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\\\/#webpage\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/12\\\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\\\/\",\"name\":\"Aula 24: Shell Script \\u2014 automatiza\\u00e7\\u00e3o de tarefas com Bash - BLOG - JRT Technology Solutions\",\"description\":\"O dom\\u00ednio de Shell Script \\u00e9, sem exagero, o divisor de \\u00e1guas entre um administrador de sistemas que opera manualmente e um profissional de infraestrutura que orquestra rotinas complexas com consist\\u00eancia, seguran\\u00e7a e previsibilidade. Nesta vig\\u00e9sima quarta aula do curso Linux \\u2014 Do Zero ao Avan\\u00e7ado, voc\\u00ea deixar\\u00e1 de enxergar o terminal apenas como um\",\"inLanguage\":\"pt-BR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/12\\\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/ai-image-1786569578421.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/12\\\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\\\/#mainImage\",\"width\":1440,\"height\":1024,\"caption\":\"Aula 24: Shell Script \\u2014 automatiza\\u00e7\\u00e3o de tarefas com Bash\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/12\\\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\\\/#mainImage\"},\"datePublished\":\"2026-08-12T18:19:48-03:00\",\"dateModified\":\"2026-08-12T18:19:48-03:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"alternateName\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"inLanguage\":\"pt-BR\",\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Aula 24: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash - BLOG - JRT Technology Solutions","description":"O dom\u00ednio de Shell Script \u00e9, sem exagero, o divisor de \u00e1guas entre um administrador de sistemas que opera manualmente e um profissional de infraestrutura que orquestra rotinas complexas com consist\u00eancia, seguran\u00e7a e previsibilidade. Nesta vig\u00e9sima quarta aula do curso Linux \u2014 Do Zero ao Avan\u00e7ado, voc\u00ea deixar\u00e1 de enxergar o terminal apenas como um","canonical_url":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/#blogposting","name":"Aula 24: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash - BLOG - JRT Technology Solutions","headline":"Aula 24: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash","author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/08\/ai-image-1786569578421.jpg","width":1440,"height":1024,"caption":"Aula 24: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash"},"datePublished":"2026-08-12T18:19:48-03:00","dateModified":"2026-08-12T18:19:48-03:00","inLanguage":"pt-BR","mainEntityOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/#webpage"},"isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/#webpage"},"articleSection":"Linux, Linux \u2014 Do Zero ao Avan\u00e7ado: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash"},{"@type":"BreadcrumbList","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","position":1,"name":"Home","item":"https:\/\/jrtx.com.br\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/linux\/#listItem","name":"Linux"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/linux\/#listItem","position":2,"name":"Linux","item":"https:\/\/jrtx.com.br\/blog\/category\/linux\/","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/#listItem","name":"Aula 24: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash"},"previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/#listItem","position":3,"name":"Aula 24: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash","previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/linux\/#listItem","name":"Linux"}}]},{"@type":"Organization","@id":"https:\/\/jrtx.com.br\/blog\/#organization","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","url":"https:\/\/jrtx.com.br\/blog\/","telephone":"+552138277513","logo":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/#organizationLogo","width":100,"height":75},"image":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61590814880509","https:\/\/www.instagram.com\/jrtx.tech\/"]},{"@type":"Person","@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author","url":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/","name":"Thiago Paes Rodrigues","image":{"@type":"ImageObject","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/#authorImage","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/09\/cropped-foto-rascunho3-96x96.jpeg","width":96,"height":96,"caption":"Thiago Paes Rodrigues"}},{"@type":"WebPage","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/#webpage","url":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/","name":"Aula 24: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash - BLOG - JRT Technology Solutions","description":"O dom\u00ednio de Shell Script \u00e9, sem exagero, o divisor de \u00e1guas entre um administrador de sistemas que opera manualmente e um profissional de infraestrutura que orquestra rotinas complexas com consist\u00eancia, seguran\u00e7a e previsibilidade. Nesta vig\u00e9sima quarta aula do curso Linux \u2014 Do Zero ao Avan\u00e7ado, voc\u00ea deixar\u00e1 de enxergar o terminal apenas como um","inLanguage":"pt-BR","isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/#breadcrumblist"},"author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"creator":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/08\/ai-image-1786569578421.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/#mainImage","width":1440,"height":1024,"caption":"Aula 24: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash"},"primaryImageOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/#mainImage"},"datePublished":"2026-08-12T18:19:48-03:00","dateModified":"2026-08-12T18:19:48-03:00"},{"@type":"WebSite","@id":"https:\/\/jrtx.com.br\/blog\/#website","url":"https:\/\/jrtx.com.br\/blog\/","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","alternateName":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","inLanguage":"pt-BR","publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"}}]},"og:locale":"pt_BR","og:site_name":"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","og:type":"article","og:title":"Aula 24: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash - BLOG - JRT Technology Solutions","og:description":"O dom\u00ednio de Shell Script \u00e9, sem exagero, o divisor de \u00e1guas entre um administrador de sistemas que opera manualmente e um profissional de infraestrutura que orquestra rotinas complexas com consist\u00eancia, seguran\u00e7a e previsibilidade. Nesta vig\u00e9sima quarta aula do curso Linux \u2014 Do Zero ao Avan\u00e7ado, voc\u00ea deixar\u00e1 de enxergar o terminal apenas como um","og:url":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/","og:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:secure_url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:width":100,"og:image:height":75,"article:published_time":"2026-08-12T21:19:48+00:00","article:modified_time":"2026-08-12T21:19:48+00:00","article:publisher":"https:\/\/www.facebook.com\/profile.php?id=61590814880509","twitter:card":"summary_large_image","twitter:title":"Aula 24: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash - BLOG - JRT Technology Solutions","twitter:description":"O dom\u00ednio de Shell Script \u00e9, sem exagero, o divisor de \u00e1guas entre um administrador de sistemas que opera manualmente e um profissional de infraestrutura que orquestra rotinas complexas com consist\u00eancia, seguran\u00e7a e previsibilidade. Nesta vig\u00e9sima quarta aula do curso Linux \u2014 Do Zero ao Avan\u00e7ado, voc\u00ea deixar\u00e1 de enxergar o terminal apenas como um","twitter:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg"},"aioseo_meta_data":{"post_id":"2219","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-08-15 14:26:09","updated":"2026-08-15 14:26:09","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\/category\/linux\/\" title=\"Linux\">Linux<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tAula 24: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/jrtx.com.br\/blog"},{"label":"Linux","link":"https:\/\/jrtx.com.br\/blog\/category\/linux\/"},{"label":"Aula 24: Shell Script \u2014 automatiza\u00e7\u00e3o de tarefas com Bash","link":"https:\/\/jrtx.com.br\/blog\/2026\/08\/12\/aula-24-shell-script-automatizacao-de-tarefas-com-bash\/"}],"_links":{"self":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/2219","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/comments?post=2219"}],"version-history":[{"count":0,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/2219\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media\/2218"}],"wp:attachment":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media?parent=2219"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/categories?post=2219"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/tags?post=2219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}