simples bash while loop cria um arquivo indesejado chamado 0

simples bash while loop cria um arquivo indesejado chamado 0

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

> 0redireciona para um arquivo chamado 0. Nota > somethingou 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.

informação relacionada