Isso é o mesmo que:
[ 'echo hi' ] > /dev/null
Os redirecionamentos podem aparecer em qualquer lugar na linha.
Em condições normais, é o mesmo que
[ hi ]
Qual é o mesmo que:
true
Esse é um comando que não produz nada e retorna um status de saída bem-sucedido.
O resultado pode ser diferente se:
- o redirecionamento falha, por exemplo, se você atingiu o limite de arquivos abertos ou não tem acesso de gravação a
/dev/null
(o que novamente não deve acontecer em condições normais). Nesse caso, o shell retornará com um status de saída diferente de zero e você verá uma mensagem de erro, e o comando[
não será executado. - A substituição do comando falha (por exemplo, porque você não pode desembolsar mais nenhum processo ou não pode iniciar um canal porque atingiu o número máximo de descritores de arquivo). Nesse caso, dependendo do shell, muitas coisas podem acontecer, incluindo o abortamento do shell.
- se
$IFS
contiverh
oui
, então isso será resolvido para (por exemplo, para IFS = h):[ '' i ]
, que é inválido e fará com que[
retorne um erro e defina o status de saída para o não sucesso. - coisas possivelmente mais estranhas se
[
ouecho
tiverem sido redefinidas para fazer outra coisa, como tocar uma música ou reiniciar o computador.
Em suma, esse comando não faz sentido e provavelmente foi escrito com a intenção exclusiva de confundir você.