Pular para o conteúdo principal

Questão de Sistemas Operacionais — Linux — VUNESP 2023

Sistemas OperacionaisLinux
Código
vu197385
Banca
VUNESP
Órgão
Pref SP
Ano
2023
Cargo
AFTM SP

Shell scripts são criados com o propósito de automatizar tarefas de sistema. Para executar um script com o nome auto.sh em segundo plano (background) no sistema, deve-se utilizar o comando:

  1. A./auto.sh >
  2. B./auto.sh <
  3. C./auto.sh |
  4. D./auto.sh &
  5. E./auto.sh ~
Revelar gabarito e comentário

GabaritoD — ./auto.sh &

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”.

Execução de scripts em segundo plano no Linux

Gabarito: letra D. Para executar um script em segundo plano (background) no Linux, utiliza-se o operador & ao final do comando, como em ./auto.sh &. Esse operador faz o shell retornar o controle do terminal imediatamente, enquanto o processo continua rodando em segundo plano.

O shell é o interpretador de comandos do Linux, responsável por ler o que o usuário digita e executar os programas correspondentes. Quando você digita um comando como ./auto.sh, o shell executa o script e espera até que ele termine antes de liberar o prompt novamente — isso é a execução em primeiro plano (foreground). Para automatizar tarefas sem travar o terminal, o Linux oferece o operador &, que coloca o processo em segundo plano (background), devolvendo o prompt imediatamente.

Na prática, ao digitar ./auto.sh &, o shell inicia o script, imprime o número do processo (PID) e retorna ao prompt, permitindo que você continue trabalhando enquanto o script roda. Isso é essencial para scripts longos, como backups ou processamentos de dados, que não precisam de interação do usuário.

Os demais operadores apresentados nas alternativas têm funções completamente diferentes: > redireciona a saída padrão para um arquivo, < redireciona a entrada padrão a partir de um arquivo, | conecta a saída de um comando à entrada de outro (pipe), e ~ é um caractere curinga que representa o diretório home do usuário. Nenhum deles tem relação com execução em segundo plano.

A pegadinha desta questão é justamente confundir os operadores de redirecionamento (>, <, |) com o operador de execução em segundo plano (&). O candidato que não domina a sintaxe básica do shell pode marcar qualquer uma das outras opções, mas apenas o & cumpre a função pedida.

Guarde a distinção: redirecionamento (>, <, |) manipula fluxos de dados, enquanto & controla a execução do processo. É exatamente essa fronteira que separa a alternativa correta das demais.

  1. 1Digita ./auto.sh
  2. 2Shell executa o script
  3. 3Espera terminar (foreground)
  4. 4Usa & para background
  5. 5Prompt volta imediato
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O operador > é de redirecionamento de saída. Ele envia a saída padrão do comando para um arquivo, sobrescrevendo-o. Por exemplo, ./auto.sh > saida.txt executaria o script e gravaria sua saída no arquivo saida.txt, mas o script continuaria rodando em primeiro plano, ocupando o terminal até terminar.

Alternativa B — ❌ Incorreta

O operador < é de redirecionamento de entrada. Ele faz o comando ler dados de um arquivo em vez do teclado. Por exemplo, ./auto.sh < entrada.txt faria o script ler de entrada.txt, mas novamente em primeiro plano, sem liberar o terminal.

Alternativa C — ❌ Incorreta

O operador | (pipe) conecta a saída de um comando à entrada de outro. Por exemplo, ./auto.sh | grep erro executaria o script e enviaria sua saída para o comando grep, que filtraria as linhas contendo "erro". O script ainda rodaria em primeiro plano, e o pipe não tem relação com background.

Alternativa D — ✅ Correta ⟵ GABARITO

O operador & é o operador de execução em segundo plano. Ao final do comando, ele faz o shell iniciar o processo e retornar o prompt imediatamente, sem esperar a conclusão. O script ./auto.sh & roda em background, e o usuário pode continuar usando o terminal normalmente.

Alternativa E — ❌ Incorreta

O caractere ~ é um atalho para o diretório home do usuário. Por exemplo, cd ~ leva ao diretório pessoal. Ele não é um operador de execução e não tem nenhuma função de controle de processos. Usá-lo ao final de um comando não produziria o efeito desejado.

Gabarito: letra D

Link permanente: /questoes/vu197385