Linux sem FronteirasLinux sem FronteirasLinux sem FronteirasLinux sem Fronteiras
  • Certificações Linux
    • LPIC-1 – Administrador Linux
    • Comptia Linux+
    • Simulado LPI 1 (101-500 e 102-500)
  • Cursos
    • Curso Preparatório para Certificação Linux LPIC-1
    • Curso Preparatório para Certificação LPIC-2
    • Curso Preparatório para Certificação LPIC-3: Virtualização e Conteinerização
    • Programação Shell Script
  • Contato

Usando a instrução for do bash no dia a dia

    Home Comandos Usando a instrução for do bash no dia a dia
    NextPrevious

    Usando a instrução for do bash no dia a dia

    By Ricardo Prudenciato | Comandos | 0 comment | 15 agosto, 2017 | 7

    Neste breve post vamos falar de uma instrução do shell que é muito útil, mas que é muito pouco utilizada pela maioria dos profissionais Linux no dia dia, a instrução for.

    A maioria dos profissionais acredita que a instrução “for” só tem utilidade dentro de um shell script, para criar rotinas de loop.

    Mas não esqueça que um “shell script” nada mais é do que uma sequência de instruções do shell, normalmente do bash, dessa forma o for pode muito bem ser utilizado fora de um script, para muitas funções.

    A Sintaxe do For no Bash Linux

    A sintaxe da instrução for normalmente utilizada em um shell script é a seguinte:

    for valor in <sequencia>
    do
    <comandos>
    done

    Nessa sintaxe, a variável “valor”, ou qualquer outro nome que for definido, receberá em cada loop o valor obtido através da “<sequencia>”, que pode ser uma sequência de valores ou um comando que gera uma sequência de valores, o que normalmente é o caso.

    Entre o “do” e o “done” teremos a sequência de comandos a serem utilizados, normalmente referenciando a variável declarada no for como $valor.

    No entanto, a mesma instrução pode ser utilizada diretamente na linha de comando do shell, de duas a formas, a primeira digitando linha a linha, utilizando-se exatamente a mesma sintaxe usada acima:

    # for i in <sequencia>
    > do
    > comando1
    > comando2
    > done

    A outra opção é criar toda a instrução em uma linha única, o que facilita muito para copiar e colar o comando, criar um alias e etc. Nesse caso a sintaxe é a seguinte:

    # for valor in <sequencia>; do comando1; comando2; done

    Note que, simplesmente pelo comando estar todo em uma mesma linha, utilizamos o sinal do “;” após a <sequencia> e após cada comando.

    A Sequência do Loop For

    Quanto à sequência, como disse anteriormente ela pode ser uma sequência explícita de valores ou um comando que gera uma sequência. Alguns exemplos:

    • for i in 1 2 3 4 5
    • for i in a b c d e
    • for i in $(seq 20) – Comando que gera uma sequência de 1 a 20
    • for i in $(seq 1 5 50) – Comando que gera uma sequência de 1 a 50 com intervalos de 5 em 5
    • for i in {1..20} – Esse formato também pode ser utilizado para gerar uma sequência de 1 a 20
    • for i in {1..50..5} – Esse formato também gera uma sequência de 1 a 50 com intervalos de 5 em 5
    • for i in * – A variável “i” vai receber todos os arquivos e diretórios do diretório atual

    Exemplos de Uso do For diretamente no Bash

    Agora que você já sabe como usar a instrução for diretamente no shell do Linux, vamos ver alguns exemplos de como isso é útil.

    Por exemplo, imagine que você tem um arquivo texto, com uma lista de usuários do sistema, e você deseja copiar o arquivo instrucoes.txt para o home de cada um deles, e ainda forçar que esses usuários troquem suas senhas no próximo login. A instrução seria a seguinte:

    # for var in $(cat arquivo-usuarios.txt); do cp instrucoes.txt /home/”$var”/; chage -d0 “$var”; done

    Outro exemplo, você deseja alterar o nome de todos os arquivos com a extensão “.out” para “.out-backup”. Use o comando:

    for i in *.out; do mv $i $i-backup; done

    Um outro exemplo, enviar o arquivo instrucoes.txt via scp para o usuario suporte dos IPs de 10.0.0.100 a 10.0.0.120:

    for ip in {100..120}

    > do

    > scp instrucoes.txt suporte@10.0.0.$ip:~/

    > done

    E assim vai, as possibilidades são inúmeras e realmente ajuda muito no dia a dia de um administrador ou analista de sistemas.

    bash, comandos, shell script

    Ricardo Prudenciato

    More posts by Ricardo Prudenciato

    Related Posts

    • Gerenciamento de Processos no Linux

      By Ricardo Prudenciato | 0 comment

      Nesse artigo, vamos entender melhor como o kernel do Linux realiza internamente o gerenciamento e o escalonamento de processos, e como o administrador pode interferir nessa dinâmica através dos comandos “nice” e “renice”. Escalonamento deRead more

    • Instalação Zabbix Server v 3.4.1 – Debian 8 Jessie

      By Pedro Henrique | 0 comment

      Tutorial de instalação do Zabbix no Debian 8, versão atual da solução é a 3.4.1   1- Adicionando repositórios # echo “deb http://ftp.de.debian.org/debian jessie main non-free” >> /etc/apt/sources.list # echo “deb-src http://ftp.de.debian.org/debian jessie main non-free”Read more

    • Entendendo o Comando Free no Linux

      By Ricardo Prudenciato | 2 comments

      O comando free do Linux é muito útil para se observar e monitorar o uso da memória do sistema, mas ao mesmo tempo ele gera muitas dúvidas pois usa conceitos que são desconhecidos pela maioriaRead more

    • FreeRadius v3 com integração MySQL e Mikrotik no Debian 9 Stretch

      By Pedro Henrique | 26 comments

      Neste artigo vamos aprender como configurar o FreeRadius 3.x em em um servidor Debian. Neste servidor teremos integração de usuários de uma base de dados MySQL que serão autenticados por um hotspot, que por suaRead more

    Leave a Comment

    Cancelar resposta

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

    NextPrevious

    Curso Linux LPIC-1

    Curso Linux LPIC-1

    Parceiro Oficial

    Posts recentes

    • O LPI Comemora os Seus 25 Anos!
    • Novos Preços para os Exames da LPI em 2023
    • Gerenciamento de Processos no Linux
    • Lançada a Versão 5.0 dos Exames da LPIC-1
    • O Fim da Parceria entre a CompTIA e a LPI

    Parceiro Oficial

    parceiro oficial lpi
    • Certificações Linux
      • LPIC-1 – Administrador Linux
      • Comptia Linux+
      • Simulado LPI 1 (101-500 e 102-500)
    • Cursos
      • Curso Preparatório para Certificação Linux LPIC-1
      • Curso Preparatório para Certificação LPIC-2
      • Curso Preparatório para Certificação LPIC-3: Virtualização e Conteinerização
      • Programação Shell Script
    • Contato
    • Certificações Linux
      • LPIC-1 – Administrador Linux
      • Comptia Linux+
      • Simulado LPI 1 (101-500 e 102-500)
    • Cursos
      • Curso Preparatório para Certificação Linux LPIC-1
      • Curso Preparatório para Certificação LPIC-2
      • Curso Preparatório para Certificação LPIC-3: Virtualização e Conteinerização
      • Programação Shell Script
    • Contato
    Linux sem Fronteiras