Estou baixando um arquivo com o wget e quero desligar o computador após a conclusão do download, mas preciso ir a algum lugar agora :) É possível executar o comando no bash exatamente quando o processo for concluído?
Eu sei que isso funciona:
wget http://example.com/file.rar; desligamento agora
Mas e se eu digitar apenas:
wget http://example.com/file.rar
Respostas:
Você pode fazer algo assim:
wait irá esperar por todos os programas executados em segundo plano a partir do shell atual - ou seja, este wget.
Após a espera terminar - o desligamento continuará.
fonte
Em outro shell, use
para encontrar o PID do comando que você deseja aguardar,
para que o desligamento não seja executado até o processo terminar. Veja também a resposta de depesz .
fonte
wait
só funcionará para os comandos iniciados a partir do mesmo shellMinhas soluções são: suspenda sua tarefa de longa duração com Control + Z e digite algo como:
Se você deseja executar a reação de maneira diferente com base no sucesso ou falha do seu comando, use && e || como operadores de curto-circuito.
EDIT: Isso não funcionará com o sudo, porque solicitará sua senha. Portanto, removi os exemplos usando o sudo. Se você precisar do sudo para a segunda tarefa, use outro dos métodos publicados aqui.
Por outro lado, acredito que o GNOME e o KDE oferecem maneiras de acionar um desligamento / reinicialização sem usar o sudo, enviando um sinal D-Bus apropriado ou algo assim.
fonte
fg
..., massudo
poderia ser um problema se ele solicita uma senhaSim, basta digitar seu segundo comando e pressionar enter. Se o seu programa atual estiver rolando texto, você não poderá ver o que está digitando corretamente; portanto, observe as teclas para fazer o que é correto.
Uma maneira mais inteligente é alternar para outro TTY (CTRL + ALT + F1 a F6) e executar o comando simultaneamente ou, se você estiver usando um programa de linha de comando como a tela, poderá criar uma nova janela nele.
fonte
Se você quiser ser chique, verifique o status de retorno do wget e encerre apenas se tiver sido bem-sucedido.
fonte
wget
ao criar scripts, mas durante a execução, você não recebe um prompt de volta para criar o teste.