Posso modificar ou eliminar preventivamente uma parte da execução do comando bash composto separado por ;?

Posso modificar ou eliminar preventivamente uma parte da execução do comando bash composto separado por ;?

Estou executando vários comandos bash separados por ponto e vírgula:

% long-running-command-I-want ; another-command-I-dont

O long-running-command-I-wantainda está em execução; naturalmente ainda não pidexiste another-command-I-dont. Gostaria de matar/cancelar/prevenir preventivamente a execução another-command-I-dontsem matar o long-running-command-I-wantque estou esperando há algum tempo. Posso fazer isso? Se sim, como?

Responder1

Se você executar outro shell, poderá descobrir o PID do bashqual está executando o programa que deseja continuar. Se for bashPID, envie um sinal de interrupção com:

kill -2 bashPID

Isso interromperá a execução do restante da linha de comando.

Opcionalmente, no shell original você pode digitar Ctrl- zpara suspender temporariamente o programa em execução em segundo plano. Isso continuaria com o restante da linha de comando, que seria liberada pelo sinal de interrupção. Você pode então retomar o programa em execução com fgou bg, dependendo se deseja que ele continue em primeiro ou segundo plano.

informação relacionada