Questão de Sistemas Operacionais — Linux — VUNESP 2023
Sistemas Operacionais›Linux
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:
A./auto.sh >
B./auto.sh <
C./auto.sh |
D./auto.sh &
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.
1Digita ./auto.sh
2Shell executa o script
3Espera terminar (foreground)
4Usa & para background
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.