
Por alguma razão inexplicável, quando executo o código a seguir (minimalizado, obviamente) um arquivo chamado "0" é criado. Alguém poderia explicar por que isso acontece e como evitá-lo? Muito obrigado
#!/bin/bash
while [ 1 > 0 ]
do
exit
done
Responder1
> 0
redireciona para um arquivo chamado 0
. Nota > something
ou sintaxe semelhantenão precisa estar no final. O arquivo será criado mesmo que o comando redirecionado não faça sentido. No seu caso, o comando é [ 1 ]
sintaticamente válido: verifica se 1
é uma string não vazia.
Você provavelmente quis dizer [ 1 -gt 0 ]
. Veja help [
e help test | less
.