Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2024

ProgramaçãoLinguagens de programação
Código
ce185092
Banca
CESPE / CEBRASPE
Órgão
SEBRAE-NACIONAL
Ano
2024
Nível
Superior
Cargo
Analista Técnico II – Banco de Dados

Imagem associada para resolução da questão



Considerando-se o script Shell precedente, é correto afirmar que o arquivo


  1. AImagem associada para resolução da questão conterá duas linhas, Imagem associada para resolução da questão uma vez que o conteúdo dos arquivos Imagem associada para resolução da questão e Imagem associada para resolução da questão será concatenado em novas linhas.
  2. BImagem associada para resolução da questão conterá o texto Imagem associada para resolução da questão, pois o conteúdo dos arquivos Imagem associada para resolução da questão e Imagem associada para resolução da questão será concatenado sem novas linhas.
  3. CImagem associada para resolução da questão será criado e permanecerá vazio, já que não há arquivos txt no diretório.
  4. DImagem associada para resolução da questão conterá o texto Imagem associada para resolução da questão, mas o script falhará se os arquivos  Imagem associada para resolução da questão e  Imagem associada para resolução da questão não existirem.
Revelar gabarito e comentário

GabaritoB — [imagem] conterá o texto [imagem], pois o conteúdo dos arquivos [imagem] e [imagem] será concatenado sem novas linhas.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Shell Script: redirecionamento e concatenação de arquivos

Gabarito: letra B. O script Shell em questão utiliza o operador de redirecionamento >> para concatenar o conteúdo dos arquivos de texto em um novo arquivo, sem adicionar novas linhas entre eles. A alternativa correta afirma que o arquivo resultante conterá o texto concatenado dos arquivos de origem, sem quebras de linha adicionais, o que está de acordo com o comportamento padrão do operador >> no Shell.

O operador >> é um dos redirecionadores mais utilizados em Shell Script. Ele tem a função de anexar (append) a saída de um comando ao final de um arquivo, criando o arquivo se ele não existir. Diferente do operador >, que sobrescreve o conteúdo existente, o >> preserva o que já está no arquivo e adiciona o novo conteúdo ao final. No contexto da questão, o script provavelmente executa comandos como cat arquivo1.txt >> arquivo_final.txt e cat arquivo2.txt >> arquivo_final.txt, ou utiliza um único comando com múltiplos arquivos de entrada. Em ambos os casos, o conteúdo dos arquivos é concatenado sequencialmente, sem a inserção automática de quebras de linha entre eles, a menos que os próprios arquivos já terminem com uma quebra de linha.

É importante entender que o redirecionamento >> não adiciona separadores entre os conteúdos concatenados. Se o primeiro arquivo termina com uma quebra de linha e o segundo começa com texto, o resultado será uma linha contínua, sem quebra adicional. Isso é diferente de usar o comando cat com múltiplos arquivos, que também concatena sem adicionar separadores, mas a forma como o script é escrito pode influenciar o resultado final. A pegadinha da questão está em confundir o comportamento do >> com o de outros operadores ou com a ideia de que o script adicionaria novas linhas automaticamente.

Para resolver a questão, é essencial conhecer o comportamento exato dos redirecionadores no Shell. O operador >> é usado para anexar, enquanto o > é usado para sobrescrever. Além disso, é preciso saber que a concatenação de arquivos não insere quebras de linha adicionais, a menos que o script explicitamente as adicione, por exemplo, com o comando echo ou com a opção -n do cat. A alternativa B reflete exatamente esse comportamento: o arquivo resultante conterá o texto concatenado sem novas linhas adicionais.

Agora, vamos analisar cada alternativa em detalhes, identificando o erro específico de cada uma.

  1. 1> sobrescreve
  2. 2>> anexa ao final
  3. 3cat concatena sem separador
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

A alternativa A afirma que o arquivo conterá duas linhas, pois o conteúdo dos arquivos será concatenado em novas linhas. Isso está errado, pois o operador >> não adiciona quebras de linha entre os conteúdos concatenados. A concatenação é feita de forma contínua, sem inserção automática de novas linhas. O erro está em supor que o script adicionaria uma quebra de linha entre os arquivos, o que não ocorre com o redirecionamento >>.

Alternativa B — ✅ Correta ⟵ GABARITO

A alternativa B está correta ao afirmar que o arquivo conterá o texto concatenado sem novas linhas. O operador >> anexa o conteúdo dos arquivos de origem ao arquivo de destino, sem adicionar separadores ou quebras de linha. Se os arquivos de origem não terminarem com quebra de linha, o resultado será um texto contínuo. Essa é a descrição exata do comportamento do redirecionamento de concatenação no Shell.

Alternativa C — ❌ Incorreta

A alternativa C afirma que o arquivo será criado e permanecerá vazio, pois não há arquivos txt no diretório. Isso está errado, pois o script, ao utilizar o operador >>, cria o arquivo de destino mesmo que os arquivos de origem não existam, mas o conteúdo será vazio apenas se não houver entrada. No entanto, a questão pressupõe que os arquivos de origem existem e contêm texto, pois a alternativa B, que é a correta, afirma que o arquivo conterá o texto concatenado. Além disso, o operador >> cria o arquivo de destino se ele não existir, mas não o deixa vazio se houver conteúdo a ser anexado.

Alternativa D — ❌ Incorreta

A alternativa D afirma que o arquivo conterá o texto, mas o script falhará se os arquivos de origem não existirem. Isso está parcialmente correto em relação à falha, mas errado em relação ao comportamento geral. O operador >> não causa falha se o arquivo de origem não existir; ele simplesmente não anexa nada. No entanto, se o script usar o comando cat com um arquivo inexistente, o Shell exibirá uma mensagem de erro, mas o script continuará executando, a menos que seja configurado para interromper. A alternativa D é incorreta porque sugere que o script falharia, o que não é necessariamente verdade, e também porque não menciona a concatenação sem novas linhas, que é o ponto central da questão.

Gabarito: letra B

Link permanente: /questoes/ce185092