Porque:
[ "a" != "$(printf "\na")" ] && echo true || echo false
imprimir true
enquanto:
[ "a" != "$(printf "\n")a" ] && echo true || echo false
imprimir false
?
Porque:
[ "a" != "$(printf "\na")" ] && echo true || echo false
imprimir true
enquanto:
[ "a" != "$(printf "\n")a" ] && echo true || echo false
imprimir false
?
Acho que é porque
$(...)
. Essa substituição remove automaticamente o caractere de nova linha final. Esse é um bom comportamento padrão.