Como enfileirar comandos

3

Suponha que eu tenha trabalhos para serem executados um após o outro, como posso colocá-los em fila e, se possível, ainda reter a saída / log que cada script produz. (por exemplo, eu posso usar no para agendar tarefas, mas eu não recebo o log / saída de cada aplicativo)

    
por Jiew Meng 04.08.2011 / 15:47

3 respostas

4

Se você quiser executar vários comandos de forma interativa, separe-os com um ponto-e-vírgula:

foo ; bar ; baz

Se você quiser enfileirar um lote de comandos a serem executados em segundo plano quando o sistema não estiver muito ocupado e possivelmente depois de ter efetuado logout, você poderá usar o comando batch . A saída das tarefas executadas com batch , at ou cron é enviada por e-mail para você. Para que isso funcione, você precisa configurar um servidor de correio local.

    
por psusi 04.08.2011 / 16:17
3

Escreva os comandos com & amp; & amp; entre eles, por exemplo: command1 && command2

Nota: o segundo comando não será executado se o primeiro comando retornar um erro

    
por danjjl 04.08.2011 / 16:00
1

Se esta for uma longa lista de comandos, ou se você fizer isso com bastante frequência, eu faria um script para fazer isso por você.

scripts de shell dessa natureza são extremamente fáceis.

#!/bin/bash
foo
bar
baz

Basta colocar este texto em um arquivo, ativar a execução em ( chmod +x myscript ) e, em seguida, ./myscript e fora de você.

Isso executará os comandos foo , bar e baz para assumir que todos eles bloqueiam.

Se você quiser fazer algo mais complicado, consulte o Guia avançado de script de script

    
por user606723 04.08.2011 / 19:09