Executar comando após o anterior concluído

0

Existe um emulador de terminal que permite ao usuário executar um comando após o término da execução atual?

Estou procurando por um software, não por uma explicação de como concatenar comandos (por exemplo, via && ou ; ). É que muitas vezes eu quero fazer alguma coisa depois que alguma outra coisa acabou, mas não planejo tudo à frente. Uma pequena entrada no menu de contexto chamada "executar após o comando atual terminar", abrindo uma nova janela de terminal que faz exatamente isso seria incrível.

    
por UTF-8 25.01.2016 / 20:41

2 respostas

0

Eu suponho que você esteja usando um CLI Bash. Existem pelo menos duas maneiras de fazer isso, dependendo de quanto você deseja planejar com antecedência.

Se você digitar um comando e entrar , e então decidir que quer executar algum outro comando quando isso terminar, você pode fazer isto:

001 $ date; sleep 10
002 Mon, Jan 25, 2016  3:08:35 PM
003 tty; date
004 $ tty; date
005 /dev/pty2
006 Mon, Jan 25, 2016  3:08:45 PM

Notas:

  • Números de linha ("001 ...") são adicionados
  • Linha 001: dois comandos são executados sequencialmente devido a ; , o segundo é de longa execução
  • Linha 002: a saída imediata de 'data' na linha 001, para referência
  • Linha 003: o usuário digita comandos adicionais enquanto o comando 'sleep' da linha 001 ainda está em execução, a digitação é ecoada, mas não é interpretada até que 'sleep' seja concluído
  • O prompt da linha 004: $ aparece marcando a execução final do segundo comando na linha 001, o resto é o eco da linha 003.
  • Linha 005: Saída do comando 'tty' inserido na linha 003
  • Linha 006: Saída do comando 'date' introduzido na linha 003, compare com a linha 002

No entanto, se você souber antecipadamente que deseja iniciar algo após um comando inicial, mas ainda não sabe o que fazer, aguarde explicitamente como:

006 $ date; sleep 20 &
007 Mon, Jan 25, 2016  3:13:52 PM
008 [1] 504840
009 $ wait 504840; tty; date
010 [1]+  Done                    sleep 20
011 /dev/pty2
012 Mon, Jan 25, 2016  3:14:12 PM

Notas:

  • Linha 006: 'date' para referência e, em seguida, o comando 'sleep' é colocado em segundo plano com e
  • Linha 007: saída de 'data' na linha 006, para referência
  • Linha 008: saída de & na linha 006, dando o PID do comando 'sleep'
  • Linha 009: 'espera' aguardará o processo com PID nomeado para concluir
  • Linha 010: 'sleep' na linha 006 completa e, em seguida, 'tty; data 'será interpretada
  • Linha 011: saída de 'tty' na linha 009
  • Linha 012: saída de 'data' na linha 009, compare com a linha 007
por 25.01.2016 / 22:25
0

Você pode digitar ou colar seu novo comando na janela do shell onde o comando atual está sendo executado e o shell o verá e executará depois que o comando atual terminar.

Nenhuma entrada de menu adicional necessária.

Por exemplo:

$ command1
command2
$ $

(o prompt repetido é impresso porque o shell irá avisá-lo após a execução de command1 antes de iniciar o command2 ).

Se você eliminar command1 com kill , então command2 será executado corretamente embora, se você digitar Ctrl-C neste shell, isso abortará ambos comandos.

    
por 25.01.2016 / 20:54