Você pensaria que [[
pode ser usado onde quer que [
seja usado no bash. Afinal, parece ser uma versão melhor do [
. Mas você pouparia alguns momentos frustrantes se reconhecer as diferenças entre eles. Aqui está uma diferença digna de nota.
Observe que -a
é o operador para ‘e’ em [
.
[ ( 'hello' == 'hello' ) -a ( 'world' == 'world' ) ] # WORKS
Mas você não pode construir condições compostas usando -a
em [[
.
[[ ( 'hello' == 'hello' ) -a ( 'world' == 'world' ) ]] # DOES NOT WORK
Com [[
, use o &&
operador.
[[ ( 'hello' == 'hello' ) && ( 'world' == 'world' ) ]] # WORKS