Comando de espera no Linux

Comando de espera no Linux
espere é um comando interno do Linux que aguarda a conclusão de qualquer processo de execução. espere O comando é usado com um ID de processo específico ou ID de trabalho. Quando vários processos estiverem em execução no shell, apenas o ID do processo do último comando será conhecido pelo shell atual. Se o comando de espera for executado desta vez, será aplicado para o último comando. Se nenhum ID do processo ou ID do trabalho for dado com o comando Wait, ele aguardará todos os processos filhos atuais para concluir e retornará o status de saída.

O valor de status de saída do comando Wait depende do comando indicado pelo último operando especificado. Quando qualquer processo terminar de forma anormal, o status de saída será maior que 128 e será diferente dos valores de status de saída de outros comandos. espere O comando sai com o valor 0 quando chama sem operandos e todos os IDs de processo são conhecidos pelo shell atual terminou. Se o comando wait detectar algum erro, ele retornará qualquer valor de 1 para 126. Se o último ID do processo for desconhecido, o comando de espera sai com o valor 127. Como você pode usar o comando Wait in Linux é mostrado neste tutorial.

Exemplo 1: Usando o comando Wait para vários processos

Após a execução do script a seguir, dois processos serão executados em segundo plano e o ID do processo do primeiro comando de eco é armazenado na variável $ process_id. Quando o comando de espera é executado com $ process_id, o próximo comando aguardará a conclusão da tarefa do primeiro comando de eco. O segundo comando de espera é usado com '$!'E isso indica o ID do processo do último processo em execução. '$?'é usado para ler o valor do status do comando de espera.

#!/BIN/BASH
eco "testando wait command1" &
process_id = $!
eco "testando wait command2" &
aguarde $ process_id
O trabalho de eco 1 saiu com o status $?
espere $!
O trabalho de eco 2 saiu do status $?

Saída:

$ Bash Wait1.sh

Exemplo 2: Teste o comando Wait após usar o comando de matar

No script a seguir, o comando de espera é executado após encerrar o processo. O comando do sono está em execução como um processo de fundo e o comando de matar é executado para rescindir o processo em execução. Após esse comando de espera, o comando é executado com o ID do processo do processo terminado. A saída mostrará o ID do processo do processo terminado.

#!/BIN/BASH
eco "comando de espera de teste"
sono 20 e
PID = $!
Mate $ pid
espere $ pid
Echo $ pid foi encerrado.

Saída:

$ bash wait2.sh

Exemplo 3: Verifique o valor de status de saída

No script a seguir, a função verificar() é chamado por dois valores de argumento. É discutido no início do tutorial que, se o comando Wait executar com sucesso, o valor de saída será 0 e se o comando Wait detectar algum erro, ele retornará qualquer valor entre 1 e 126. Depois de executar o script, se você passar 0 como valor do segundo argumento, aguarde o comando terminado com sucesso e se você passar algum valor mais do que zero, ele terminou, sem sucesso.

#!/BIN/BASH
função check ()

eco "durma por US $ 1 segundos"
Durma $ 1
Saia $ 2

Verifique $ 1 $ 2 e
b = $!
eco "verificando o status"
aguarde $ b && eco ok || eco não ok

Saída:

$ Bash Wait3.sh 3 0
$ Bash Wait3.SH 3 5

Esperança, este tutorial ajudará a aprender o comando Wait Use Wait corretamente. Há outro comando no Linux, chamado dormir para esperar por certa quantidade de vezes, mas existem algumas diferenças entre esses comandos. Se você estiver interessado em saber sobre o comando do sono, pode visitar este link.