Bash: Não use if
Dica publicada em Shell Script / Miscelânea
Bash: Não use if
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.
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.
Mas eu gosto de usar os colchetes em algumas partes do código também.