Num script de shell às vezes o usuário usa o controle if na forma:
if <teste>
then
<comando>
fi
Mas saiba que existe um modo mais "elegante" de se fazer um controle tipo if.
Esse método é o método dos colchetes "[]":
[ <teste> ] && <comando>
Onde se o <teste> for verdadeiro, o comando <comando> é executado.
Outro modo é:
[ <teste> ] || <comando>
Onde se o teste for verdadeiro, o comando NÃO é executado.
Explicando: '[]' retorna verdadeiro ou falso dependendo do teste, e os operadores lógicos '&&' e '||' é que permitem ou não a execução dos comandos, como mostrado acima.
Em vez de um só comando, podemos ter uma série de comandos, para isso é só usar as chaves "{}":
[1] Comentário enviado por bpedrassani em 30/05/2008 - 11:59h
Cara, concordo que é questão de estética, e muitas vezes é até melhor não usar o if, mas o uso de colchetes não é mais elegante que o if. A organização, identação, e facilidade de leitura são muito maiores.
Mas eu gosto de usar os colchetes em algumas partes do código também.
[2] Comentário enviado por albertguedes em 30/05/2008 - 12:08h
Bom, eu uso colchetes adoidado, só uso 'if' quando preciso do 'else', isso uando não uso o 'case'. hehehe
Mas a intensão foi mais de apresentar os colchetes aos novatos em bash, eu mesmo levei um bom tempo até conhecer essa regalia.
[3] Comentário enviado por tenchi em 30/05/2008 - 14:02h
Legal a dica, mas eu ainda gosto do meu bom e velho if ;-)
Uso bastante esta construção de colchetes quando preciso fazer algo direto na linha de comando, pois acho que num script esta construção só atrapalha a visibilidade do código. Mas, como você mesmo disse, é uma questão de opção ;-)
[6] Comentário enviado por iamunhoz em 30/05/2008 - 20:50h
Muito bom, gostei. Eu também sou beeem iniciante em scripts, mas achei legal a dica. Os colchetes pódem ser mais ou menos organizados que o if, só depende do método de raciocínio que usamos.
[7] Comentário enviado por foguinho.peruca em 30/05/2008 - 23:30h
boa dica!
Não conhecia essa... é interessante saber....
Em relação ao código elegante e mais legível, discordo. Prefiro o if pois eu já estou mais acostumado devido à experiencia com outras linguagens e particularmente eu acho muito mais claro mesmo.