De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 25 de setembro de 2014
Uma shell script pode criar subprocessos ou subshells. Estas subshells permitem com que o script execute processamento paralelo, realizando na prática diversas tarefas simultaneamente.
As subshells podem ser executadas em paralelo com as tarefas do processo
pai. Para executar uma tarefa em paralelo ela deve ser executada em background,
da forma tradicional, colocando ao final do comando o caractere "&
"
(ampersand). Em computadores com múltiplos núcleos o sistema operacional
irá distribuir as tarefas pelos processadores disponíveis.
Outra aplicação útil é quando os comandos precisam ser executados em um ambiente com variáveis de ambiente distintas ou em outro diretório. Se cada comando for executado em uma subshell diferente, não existe o risco de se corromper as variáveis de ambiente do processo pai. Ao final da execução da subshell, o processamento continua dentro do ambiente do processo pai, que não foi alterado pela subshell.
No script abaixo temos duas subshells: a primeira conta de 1 a 99 e a segunda conta de 1000 a 1009. As duas subshells são executadas em background e podemos ver, a partir dos resultados obtidos na tela, que as duas são executadas em paralelo.
#!/bin/bash echo "Before starting subshell" ( count=1 while [ $count -le 99 ] do echo "$count" sleep 1 (( count++ )) done ) & ( count=1000 while [ $count -le 1099 ] do echo "$count" sleep 1 (( count++ )) done ) & wait echo "Finished"
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários