Comando Bash Wait no Linux

Bash Wait Command Linux



A espera é um comando do Linux que retorna um status de saída depois de esperar por um processo de execução completo. Quando vários processos estão sendo executados simultaneamente, o comando wait pode controlar apenas o último. Se o comando de espera não estiver associado a uma tarefa ou ID de processo, ele aguardará a conclusão de todos os processos filhos antes de retornar um status de saída. O comando bash wait é freqüentemente usado com o comando IDs de processo ou IDs de trabalho.

Neste tutorial, exploraremos o comando Bash Wait no Linux.







Sintaxe:

A sintaxe geral do comando Wait no Linux é:



aguarde [opção] ID

ID seria um ID de processo ou ID de trabalho.



Explicando o comando Bash Wait no Linux:

Primeiro, crie um arquivo usando o comando touch:





$tocarBashWait.sh

Torne este arquivo executável usando o comando abaixo:



$chmod+ x nome do arquivo

Depois que os privilégios executáveis ​​forem concedidos ao arquivo, abra o arquivo e escreva um script no arquivo bash:

#! / bin / bash

dormir 3 E

processID=$!

jogou fora 'PID:$ processID'

esperar $ processID

jogou fora 'Status de saída: $?'

$! é uma variável no BASH que armazena o PID do processo mais recente.

Agora, execute o script da seguinte maneira:

$./nome do arquivo

$./BashWait.sh

O ID do processo e o status Exist aparecerão no shell.

Usando a opção –n:

Com a opção –n, o comando wait espera apenas que um único trabalho do ID de processo ou das especificações de trabalho fornecidos termine antes de retornar ao seu status de saída. Wait -n aguarda a conclusão de qualquer trabalho em segundo plano e retorna o status de saída do trabalho se nenhum argumento for fornecido.

Escreva as linhas abaixo fornecidas em seu script:

#! / bin / bash

dormir 30 E

dormir 8 E

dormir 7 E

esperar -n

jogou fora 'O primeiro trabalho foi concluído.'

esperar

jogou fora 'Todos os trabalhos foram concluídos.'

Em seguida, execute o script novamente e quando o primeiro trabalho for concluído, ele imprimirá a mensagem no terminal e aguardará que todos os outros trabalhos sejam concluídos.

Usando a opção –f:

A opção -f espera que cada id de processo ou job pare antes de retornar o código de saída. O controle de trabalho está disponível apenas para prompts responsivos por padrão.

Abra o terminal e execute o comando:

Aguarde o processo 3944.

Abra uma janela de terminal diferente e execute o comando kill para encerrar o processo.

O status será alterado. O comando Wait será concluído e retornará o código de saída do processo.

Repita as etapas fornecidas acima com o comando –f.

Script com comando Wait:

Estamos usando os scripts ‘hello.sh’ e ‘bash.sh’ para demonstração. O script ‘hello.sh’ imprime números de 1 a 5, e o script ‘bash.sh’ chama hello.sh e o executa em segundo plano, tendo o PID de hello.sh e esperando que ele termine.

Crie dois scripts com o nome hello e bash:

Adicione as linhas fornecidas abaixo no arquivo hello.sh:

#! / bin / bash

paraeuno 1 2 3 4 5 6 7 8 9 10

Faz

jogou forahello.sh - Número do loop$ i.

feito

Adicione as linhas fornecidas abaixo no script bash:

#! / bin / bash

jogou foraBash.sh iniciado

jogou foraHello.sh iniciado

./ola.shE

process_id=$!

esperar $ process_id

jogou foraHello.sh concluído

Saída:

Conclusão:

Quando um usuário deseja interromper um processo, o sistema libera todos os recursos mantidos pelo processo e aguarda o início de outro. Precisamos notificar o processo de que ele pode reiniciar a execução assim que os outros processos forem concluídos. O comando wait em bash espera para concluir a execução e retorna o status de saída quando a execução do processo é concluída. Neste manual, vimos alguns exemplos do comando Bash wait no Linux.