Artigos, Centos, Debian, Fedora, Linux, openSUSE, Redhat, UbuntuArtigos > Controle de fluxo no CLI com operadores lógicos

Artigos > Controle de fluxo no CLI com operadores lógicos

Há quem diga que existem duas formas para se fazer algo; a forma correta e a forma errada.

Em se tratando de Linux, digo que há uma vertente na forma correta: a forma correta e com elegância.

O Linux é flexível ao ponto de nos permite realizar tarefas de várias formas distintas.

Vou falar um pouco sobre operadores lógicos, o que nos permitem várias linhas de código, ciclos de CPU e consumo desnecessário de memória, além do nosso precioso tempo.

Os operadores lógicos são:

&& Só executa o comando2 se o comando1 for bem sucedido
|| Só executa comando2 se o comando1 for mal sucedido.

Operador lógico “&&”

O Operador “&&” representa um “E” lógico, de forma que só executará o comando seguinte se o comando anterior for bem sucedido.

Portanto, para que todos os comandos sejam executados, é preciso ter êxito em todos eles.

Exemplo:

grep fulano /etc/passwd && mkdir /home/fulano

No exemplo anterior, é verificado se o usuário “fulano” exite no sistema. Se sim, é criado o diretório “/home/fulano”. Caso o usuário não exista, o comando “mkdir” simplesmente não será executado.

Vejamos como faríamos isso em um Shell Script:

Note que se trata de um exemplo simples. Em alguns casos mais complexos, com uso de comandos como “sed”, “awk”, entre outros, a quantidade de linhas de código poupadas chega a ser enorme.

Operador lógico “||”

O Operador “||” representa o “Ou” lógico. Portanto, executará os comandos até que um dos comandos seja bem sucedido. Assim que tiver uma saída com sucesso, interrompe a sequência de comandos.

Exemplo I:

grep fulano /etc/passwd || grep sicrano /etc/passwd || grep beltrano /etc/passwd

Aqui serão consultados 3 usuários no arquivo “/etc/passwd” com 3 “grep”. Porém, a sequência é interrompida caso o primeiro usuário seja localizado.

Para se ter ideia do quanto isso é prático, vejamos um Shell Script que faria essa mesma ação:

Exemplo II:

dpkg -l pacote || apt-get instal pacote -y --force-yes

No exemplo acima, verifico se “pacote” está instalado. Se o comando “dpkg” não for bem sucedido, significa que o “pacote” não está instalado, e neste caso executará o “apt-get” para instalá-lo.

Conclusão

Dominar esses operadores é simples e muito prático, requisito pra quem trabalha na tela preta do Linux.

Categories: Artigos, Centos, Debian, Fedora, Linux, openSUSE, Redhat, Ubuntu Tags: , , , , , ,

Comments

No Comments Yet. Be the first?

Post a comment

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.