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 "{}":
[ <teste> ] && {
<comando 1>
<comando 1>
...
<comando N>
}
Todos estes modos de controle dão o mesmo resultado que o if, mas na hora de ler um código, eles facilitam muito a leitura.
Então o uso fica ao cargo do gosto estético de cada um.
[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 ;-)
[4] Comentário enviado por
GilsonDeElt em 30/05/2008 - 15:45h:
Valeu, cara!
Eu não sabia dessa!
Gostei da dica!
mas acho que ler o "if" é mais fácil,
pelo menos para iniciantes que nem eu
mas com os colchetes, realmente o código fica mais limpo
flw!
[5] Comentário enviado por
Xico_Ambrozio em 30/05/2008 - 18:34h:
Queria colocar um comentário OFF-TOPIC aqui, com meus pedidos de desculpas ao albertguedes:
tenchi de volta ao VOL!!! (Mesmo que num simples comentário) Legal! Tava fazendo falta.
[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.
Mas é isso...
[]'s
Jeff
[8] Comentário enviado por
ricardogorayeb em 31/05/2008 - 09:32h:
Os colchetes "[ ]" substituem a função "test" que tem o seu funcionamento similar ao "if".
Mas boa dica ....
[]'s
Ricardo Gorayeb
[9] Comentário enviado por
vfs em 25/02/2011 - 00:09h:
lembrando que os colchetes "[[" e "]]" testam strings, tipo:
[[ "$VAR" = "value" ]] && echo "deu certo" || echo "Deu errado".
aqui fiz um if / else, para quem não entendeu (novatos, ok?)
eu uso os dois jeitos, estou aprendendo perl, assim com colchetes fica mais perl-like.