Prática boa ou ruim? Redirecionando para stderr?

1

Direto ao ponto, eu tenho um script que irá read de entrada do usuário e interativamente solicita antes de imprimir a saída final que é esperada para ser obtida pelo usuário chamador assim:

AVAR=$(myscript arg1 arg2 arg3)

Então eu inventei um hack [?] sujo no myscript:

# ... blah ...
echo -n "A prompt for the user " >> /dev/stderr
read SOMEVAR >> /dev/null
# ... other stuff ...
printf "Results\t$RESULT\n"

Isso é algum tipo de mal, prática ruim usando stderr ou estou apenas sendo engenhosamente manhoso? Desculpem minha ignorância, eu sou 100% autodidata então estou usando raciocínio dedutivo, ou seja, tudo que eu não quero na variável do chamador deve ser redirecionado, mas no caso de prompts, ele ainda precisa ser exibido, e stderr foi que eu poderia inventar.

    
por nonzyro 06.12.2016 / 13:26

1 resposta

1

Resolvido: Sim, isso é uma prática ruim. Obrigado @SatoKatsura por preencher os espaços em branco.

A coisa certa a fazer é:

# ... blah ...
echo -n "A prompt for the user " >&2
read SOMEVAR >> /dev/null
# ... other stuff ...
printf "Results\t$RESULT\n"

Qual é a prática portátil e melhor, mais segura.

    
por 06.12.2016 / 14:06