terça-feira, 29 de setembro de 2015

Tomada de decisão em script bash

O linguagem de script bash é bem completa. Há comandos para praticamente tudo. E como qualquer linguagem de programação não podia ficar sem os blocos de decisão "if".

A sintaxe do "if" é simples, mas nada melhor do que ver na prática.

#!/bin/bash
if [ $USER == "root" ]
then
    echo "Você é o root"
    comandos_para_root
fi

O script acima checa se quem está executando o script é o root. Agora com o uso da cláusula "else" você pode tomar caminhos diferentes no fluxo do programa.

#!/bin/bash
if [ $USER == "root" ]
then
    echo "Você é o root"
    comandos_para_root
else
    echo "Você não é o root"
    comandos_para_nao_root
fi

Você também pode fazer uma sequência de testes encadeados usando "elif"

#!/bin/bash
if [ $USER == "root" ]
then
    echo "Você é o root"
    comandos_para_root
elif [ $USER == "ricardo" ]
then
    echo "Você é o ricardo"
    comandos_para_ricardo
else
    echo "Você não é o root e nem o ricardo"
    comandos_para_demais
fi

Você pode ter uma infinidade de 'elifs" encadeados. Inclusive pode testar outras condições dentro do mesmo bloco "if/elif/else/fi".

Para mais exemplos de script usando "if" e outros comandos consulte o site http://aurelio.net/shell/canivete/