O script a seguir foi executado duas vezes por um usuário. !/bin/bash touch text.txt cat text.txt echo "# Este é um comentário" >> text.txt exit Após a segunda execução, ao abrirmos o arquivo text.txt, ele
- A)conterá a linha "# Este é um comentário", apenas.
Errada, porque o uso de >> nao substitui o conteudo anterior, ele apenas adiciona ao final do arquivo.
- B)conterá duas linhas, a primeira em branco e a segunda com "# Este é um comentário".
Errada, porque o comando nao insere uma linha em branco antes do texto; ele apenas repete a linha com o comentario.
- C)conterá duas linhas, ambas com "# Este é um comentário".
Certa, pois na segunda execucao a linha e adicionada novamente ao final, resultando em duas linhas iguais.
- D)conterá uma linha “# Este é um comentário” seguida de uma linha em branco.
Errada, porque o echo grava a linha do comentario e nao cria automaticamente uma linha em branco depois.
- E)estará vazio.
Errada, porque o arquivo nao fica vazio: o redirecionamento de saida grava o texto no arquivo.
Gabarito: C
Neste script, o ponto central nao e o comando cat, e sim o operador de redirecionamento >>. O touch text.txt apenas cria o arquivo se ele nao existir, ou atualiza seu tempo de modificacao se ja existir. Ou seja, ele nao apaga o conteudo anterior. O cat text.txt so mostra o que ja esta dentro do arquivo naquele momento. Ele nao altera o arquivo. Depois vem o echo "# Este é um comentário" >> text.txt, que acrescenta essa linha ao final do arquivo, sem substituir o que ja estava la. Na primeira execucao, o arquivo começa vazio e recebe uma linha. Na segunda execucao, o mesmo comando roda de novo e acrescenta mais uma linha igual. Resultado: ao abrir o arquivo depois da segunda execucao, voce encontra duas linhas iguais com "# Este é um comentário". Por isso o gabarito e a alternativa C. A sacada da questao esta em perceber que >> soma ao final, enquanto > substituiria o conteudo. Em shell script, essa diferenca muda tudo.