Qual será a saída da seguinte sequência de comandos?
echo '1 2 3 4 5 6' | while read a b c; do
echo result: cb $a;
done
A
result: 3 4 5 6 2 1
Correct
B
result: 1 2 3 4 5 6
C
result: 6 5 4
D
result: 6 5 4 3 2 1
E
result: 3 2 1
Official Explanation / Community Explanations
A sequência de comandos usa um loop while com read para processar uma string de números. O comando read lê a entrada em variáveis, dividindo por espaços em branco. Por padrão, read atribui a primeira palavra à primeira variável, a segunda palavra à segunda variável e as palavras restantes à última variável. Aqui, a, b e c são especificados. A string de entrada é '1 2 3 4 5 6'. A primeira palavra 1 vai para a, a segunda palavra 2 vai para b, e o restante 3 4 5 6 vai para c. O comando echo imprime result: $c $b $a, que se torna result: 3 4 5 6 2 1. Esta é a única iteração porque a entrada é uma única linha. A saída é result: 3 4 5 6 2 1.