Administração de Linux
medium
Administração de Linux Question #019e3987
Question Statement
Administração de Linux
#for-loop
#echo
#variable-expansion
#token
Medium
Qual é a saída do seguinte comando?
for token in a b c; do
echo -n ${token};
done
A
anbncn
B
abc
Correct
C
tokentoken$token
D
{a}{b}{c}
E
a b c
Official Explanation / Community Explanations
O comando itera sobre a lista a b c usando um loop for. Em cada iteração, a variável token assume o valor do item atual. O comando echo -n ${token} imprime o valor de token sem uma nova linha no final (devido a -n). Assim, a saída é a concatenação dos três tokens: abc.
Como funciona
- A sintaxe do loop
for token in a b c; do ... doneatribui cada palavra apósinà variáveltokensequencialmente. ${token}expande para o valor da variáveltoken.echo -nimprime a string sem adicionar um caractere de nova linha.- Portanto, a primeira iteração imprime
a, a segunda imprimebimediatamente depois, e a terceira imprimec, resultando emabc.
Por que as outras opções estão incorretas
anbncn: Isso exigiria a adição denapós cada token, o que não está presente no comando.$token$token$token: Este seria o resultado se a variáveltokennão fosse expandida (por exemplo, se aspas simples fossem usadas). No entanto,${token}é expandido.{a}{b}{c}: Isso exigiria expansão de chaves ou chaves explícitas no comando echo, que não estão presentes.a b c: Este seria o resultado seecho -nfosse substituído porecho(que adiciona espaços entre os argumentos) ou se os tokens fossem impressos com espaços. O comando usa-ne imprime cada token separadamente, sem espaços.